天天看點

android gps 擷取方位_Android中通過GPS或NetWork擷取目前位置的經緯度

private double latitude=0.0;

private double longitude =0.0;

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){

Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

if(location != null){

latitude = location.getLatitude();

longitude = location.getLongitude();

}

}else{

LocationListener locationListener = new LocationListener() {

// Provider的狀态在可用、暫時不可用和無服務三個狀态直接切換時觸發此函數

@Override

public void onStatusChanged(String provider, int status, Bundle extras) {

}

// Provider被enable時觸發此函數,比如GPS被打開

@Override

public void onProviderEnabled(String provider) {

}

// Provider被disable時觸發此函數,比如GPS被關閉

@Override

public void onProviderDisabled(String provider) {

}

//當坐标改變時觸發此函數,如果Provider傳進相同的坐标,它就不會被觸發

@Override

public void onLocationChanged(Location location) {

if (location != null) {

Log.e("Map", "Location changed : Lat: "

+ location.getLatitude() + " Lng: "

+ location.getLongitude());

}

}

};

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);

Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

if(location != null){

latitude = location.getLatitude(); //經度

longitude = location.getLongitude(); //緯度

}

}

同時别忘了在AndroidManifest.xml檔案中加入如下權限: