0

我正在使用 getLastKnownLocation 方法来查找用户的位置,但该方法总是给我 null。我一直在测试我在不同系统版本(例如 2.2.1、4.0.4)上使用的方法,一切正常。在 2.3.3 上,我总是得到空值,甚至在我设法获得位置后也没有,而在其他系统版本上,我总是得到位置,空值甚至没有出现一次。这发生在我准备的每个测试条件下,无论是在真实设备上还是在模拟器上。

我知道 getLastKnownLocation 是如何工作的,我正在检查提供程序是否已启用,我正在请求位置更新,并且我正在清单中使用正确的权限。

我认为那个确切的系统版本有问题。有没有人能够证实我对这个话题的看法?在 Android 2.3.3 上获取位置是否存在错误?

4

2 回答 2

1

getLastKnownLocationnull如果没有以前的位置可以返回。如果是这种情况,您需要等待onLocationChanged您注册的侦听器中的值。

请注意,GPS 不适用于大城市、建筑物内等。此外,某些设备具有额外的位置检索机制,例如 A-GPS。所以我想这也可能是设备特定的问题。

不太可能是 2.3.3 的问题

于 2012-10-08T11:11:54.100 回答
0

我在开发地图应用程序时遇到了同样的问题。经过长时间的尝试,我找到了解决方案。

location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            locManager.requestLocationUpdates(provider,0, 0, locationListener);
            location = locManager.getLastKnownLocation(provider);
            locManager.requestLocationUpdates(provider,0, 0, locationListener);

调用 getLastKnownLocation 和 requestLocationUpdates 两次,您的 crueent 位置将设置您的最后一个位置。你的问题就会得到解决,

于 2012-10-08T11:21:49.953 回答