getLastKnownLocation() returns 空
getLastKnownLocation() returns null
我在 SO 上阅读了很多关于此主题的问答,但我不得不说其中 none 有效。
我的问题是,即使我启用了 GPS,我也无法获取位置,除非我打开 Google 地图并获取我的位置,然后返回应用程序,这绝对不是用户。
我有以下函数来获取位置。
public Location getCurrentLocation() {
LocationManager locationManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
Location myLocation = locationManager.getLastKnownLocation(provider);
return myLocation;
}
关于如何解决这个问题,我是否遗漏了什么?
我也试过这个
http://developer.android.com/training/location/retrieve-current.html#last-known
但仍然 returns 为空。
提前致谢
Is there anything I'm missing on how to solve this?
GPS 无线电正常断电,因为它们是主要的电池消耗。因此,getLastKnownLocation()
可能经常 return null
或陈旧的位置,因为没有检查位置修复。因此,getLastKnownLocation()
仅在您对位置有兴趣并且没有位置时很高兴时才有用。
如果您需要知道位置,您将需要使用 requestLocationUpdates()
或类似的东西,以使 Android 打开 GPS 收音机并主动尝试找到位置。
我在 SO 上阅读了很多关于此主题的问答,但我不得不说其中 none 有效。
我的问题是,即使我启用了 GPS,我也无法获取位置,除非我打开 Google 地图并获取我的位置,然后返回应用程序,这绝对不是用户。
我有以下函数来获取位置。
public Location getCurrentLocation() {
LocationManager locationManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
Location myLocation = locationManager.getLastKnownLocation(provider);
return myLocation;
}
关于如何解决这个问题,我是否遗漏了什么? 我也试过这个 http://developer.android.com/training/location/retrieve-current.html#last-known 但仍然 returns 为空。
提前致谢
Is there anything I'm missing on how to solve this?
GPS 无线电正常断电,因为它们是主要的电池消耗。因此,getLastKnownLocation()
可能经常 return null
或陈旧的位置,因为没有检查位置修复。因此,getLastKnownLocation()
仅在您对位置有兴趣并且没有位置时很高兴时才有用。
如果您需要知道位置,您将需要使用 requestLocationUpdates()
或类似的东西,以使 Android 打开 GPS 收音机并主动尝试找到位置。