2016年1月5日 星期二

Android-GPS 定位取得 經度 緯度( 二 )

上一篇 : Android-GPS 定位取得 經度 緯度( 一 )
來取得現在的經緯度
但是雖然非常快速又方便
但只要網路品質不佳一些外在因素
很容易取得到 ( 0.0 , 0.0 )
這篇則是註冊監聽器回調的方式來取得經緯度
雖然回應不是即時的
但相對前者更佳準確

1 . 首先註冊權限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

2 . 取得 LocationManaget
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

3 . 註冊監聽器
設定更新的參數
private static final long MIN_TIME = 0;
private static final float MIN_DUSTANCE = 5;

GPS 裝置提供的位置
try {
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
        MIN_TIME, MIN_DUSTANCE, this);
} catch (IllegalArgumentException e) {
    e.getStackTrace();
}

網路裝置提供的位置
try {
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 
        MIN_TIME, MIN_DUSTANCE,this);
} catch (IllegalArgumentException e) {
    e.getStackTrace();
}

4 . 記得要實作 LocationListener
@Override
public void onLocationChanged(Location location) {
    double latitude = location.getLatitude();
    double longitude = location.getLongitude();
}

5. 最後,記得解綁監聽
try {
    locationManager.removeUpdates(this);
} catch (IllegalArgumentException e) {
    e.getStackTrace();
}



歡迎轉載,請註明出處。

沒有留言:

張貼留言