我創建了一個程序,該程序顯示mapView,手機位置以及通過電子郵件發送此位置(緯度,經度)的能力。 (將一些地方添加到數據庫)。Android LocationManager類未返回正確的緯度/經度
我正在使用LocationManager類和getLatitude/getLongitude方法來獲取手機的位置。我的代碼如下所示:
double MyLongitude = 0;
double MyLatitude = 0;
Location location = null;
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 35000, 10, new ShowLocation());
location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
MyLatitude = location.getLatitude();
MyLongitude = location.getLongitude();
當測試我在模擬器上的應用程序,一切都OK了:MapView的顯示我固定的(使用telnet和地理修復命令)的位置,我可以通過電子郵件發送位置。我在朋友的電話上得到了同樣的結果;一切似乎都行得通。
問題出在我的手機上。我可以在mapView(小藍圈)上顯示我的位置,但是當我嘗試通過電子郵件發送我的位置時,緯度和經度都設置爲0.
這裏是顯示我的位置的代碼MapView類:
MyLocationOverlay myLocation = new MyLocationOverlay(this, mapView);
myLocation.enableMyLocation();
我不明白爲什麼我的位置似乎顯示時的工作,但我不能得到正確的緯度和經度,而它似乎在模擬器和我的朋友的電話工作。
這是由於缺少代碼或類似的東西?這是我的手機有問題嗎?我檢查的權限,和我已經有了需要的:
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_MOCK_LOCATION
我也試圖與LocationManager.NETWORK_PROVIDER代替LocationManager.GPS_PROVIDER測試,但得到了同樣的結果。
顯示mapView的類已實現了LocationListener,因此我實現了「OnLocationChanged」方法。在那裏,我只使用LocationManager中的getLatitude和getLongitude方法。 – JoMoX909
是否有另一種方法可以修復手機上的位置? – JoMoX909
如果你在OnLocationChanged中獲得位置的經度和緯度,它也是0,0? – FunkTheMonk