我在使用 NETWORK_PROVIDDER 获取当前位置方面没有什么问题。
我的代码如下所示:
LocationManager lMgr = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
boolean isNetworkProviderEnabled = lMgr
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
Location location = lMgr.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
// deal somehow with last (very likely outdated location)
}
if (isNetworkProviderEnabled) {
lMgr.requestLocationUpdates(provider, 0, 0, locationListener);
}
当然,我有处理位置更改的 MyLocationListener,并且所有必需的权限都添加到清单中
问题是,在某些手机上,这段代码就像魅力一样,但在其他手机上,“requestLocationUpdates”完全没有任何作用。当然,在那些有问题的手机上,当我打开谷歌地图应用程序时,我的当前位置会立即出现。所以我的问题是(我相信谷歌的人应该回答这个问题):谷歌地图如何立即检索当前位置,而其他应用程序却没有?我的代码错了吗?当然,我在许多 stackoverflow 问题中都看到过这样的代码。如果有人想知道,这种问题出现在一些三星 Galaxy Nexus S 手机上
在我的应用程序中,GPS 不用于节省电池电量,但启用了定位服务。