这是我用来在不添加侦听器的情况下获取最后一个已知位置的代码。我不想耗尽电池,所以我使用了:
public static Location getLastLoc(Context context){
Location loc = null;
LocationManager locationManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String best = locationManager.getBestProvider(criteria, true);
//Log.i("***", best);
if (best != null) {
loc = locationManager.getLastKnownLocation(best);
}
//Sometimes getLastKnownLocation return null (new device), so I use network as default when possible.
if (loc == null) {
try {
loc = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
} catch (Exception e) {
e.printStackTrace();
}
}
return loc;
}
我目前正在尝试此代码,最好的提供商听起来是 GPS。
不幸的是,我今天早上从 A 市搬到了 B 市,但我还没有 GPS 定位。(但 GPS 已打开)
所以我在B市时仍然得到旧城A,并且网络位置知道B市(用谷歌地图测试)
所以,由于我不需要准确的位置,怎么可能及时获得最新的修复(GPS 3 小时前,网络 10 分钟前)
谢谢