这是我用来获取当前位置的代码:
mgr = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
best = mgr.getBestProvider(criteria, true);
if (best == null) {
//ask user to enable atleast one of the Location Providers
} else {
Location location = mgr.getLastKnownLocation(best);
//But sometimes it returns null
}
几乎每次best = network
但有时它不提供位置。
mgr.getLastKnownLocation(best) returns null
还:
onResume() {
mgr.requestLocationUpdates(best, 15000, 10, this);
}
和
onPause() {
mgr.removeUpdates(this);
}
这种情况有没有替代方案?
一种选择可能是
List<String> providers = mgr.getAllProviders();
存储所有提供程序并逐个进行。但从未在任何地方看到此推荐。此外,文档建议是要求最好的提供者。