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檔案中加入如下權限: