空返回这是代码我用它来获取当前位置:getLastKnownLocation()即使有最好的供应商
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();
存储所有的供应商和1走1,但从来没有看到这个推荐的任何地方。此外,要求最好的提供商是文档的建议。
“但它不是提供位置somethimes” - 好像什么都没有使用该供应商最近尝试,它不会给你一个位置。您可能希望阅读文档:http://developer.android.com/guide/topics/location/strategies.html – CommonsWare 2013-03-14 12:51:21
'如果最近没有尝试过使用该提供程序' - 第一次使用提供程序的方式。不使用'getLastKnownLocation(provider)'? – 2013-03-14 12:55:26
报价,我联系到的文档:“获取在Android的用户位置通过回调来运作表明您希望收到来自的LocationManager位置更新通过调用requestLocationUpdates()(”定位管理“),它传递一个LocationListener的“。 – CommonsWare 2013-03-14 12:56:00