![](/img/trans.png)
[英]Why the function getLastKnownLocation return Null on Android SDK?
[英]android getLastKnownLocation() return always return null
我正在創建一個只在用戶點擊按鈕時檢查位置的應用。
這是我的代碼,當我調用getLastKnownLocation時它返回null,即使在我調用requestLocationUpdates之后:
public void main(String[] args, int iteration, Context context){
Criteria criteria = new Criteria();
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
LocationListener loc_listener = new LocationListener() {
public void onLocationChanged(Location l) {
}
public void onProviderEnabled(String p) {}
public void onProviderDisabled(String p) {}
public void onStatusChanged(String p, int status, Bundle extras) {}
};
String bestProvider = locationManager.getBestProvider(criteria, false);
locationManager.requestLocationUpdates(bestProvider, 0, 0, loc_listener);
Location location = locationManager.getLastKnownLocation(bestProvider);
location = locationManager.getLastKnownLocation(bestProvider);
double lat;
double lon;
try {
lat = location.getLatitude();
lon = location.getLongitude();
} catch (NullPointerException e) {
lat = -1.0;
lon = -1.0;
}
Log.i("results:", String.valueOf(lat) + " " + String.valueOf(lon) + " 10NN");}}
設備上的位置服務已啟用。 非常感謝!
getLastKnownLocation將返回null,直到觸發回調onLocationChanged()為止。 即使天空清晰可見,GPS也可能需要幾分鍾。 如果你在室內,它可能永遠不會運行。 你必須等待它運行。
試試這個
mGoogleMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick()
{
Location myLocation = mGoogleMap.getMyLocation();
onLocationChanged(myLocation);
return false;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.