我正在使用getLastKnownLocation方法来查找用户的位置,但该方法总是给我null。我一直在测试我在不同系统版本上使用的方法(例如2.2.1,4.0.4),一切正常。在2.3.3我总是得到null,甚至一旦我设法得到位置,而在其他系统版本我总是得到位置,null甚至没有出现过一次。这种情况发生在我正在准备的每个测试条件中以及真实设备和仿真器上。
我知道getLastKnownLocation如何工作,我正在检查提供程序是否已启用,我正在请求位置更新,而我正在使用清单中的相应权限。
我认为确切的系统版本存在问题。有人能够证实我对这个话题的看法吗?在Android 2.3.3上获取位置是否存在错误?
答案 0 :(得分:1)
getLastKnownLocation
可以返回null
。如果是这种情况,您需要使用您注册的监听器等待onLocationChanged
中的值。
请注意,GPS不适用于大城市,建筑物内部等。此外,某些设备还具有其他位置检索机制,如A-GPS。所以我想这也可能是设备特定的问题。
这不太可能是2.3.3的问题
答案 1 :(得分:0)
我开发Map应用程序时面临同样的问题。经过长时间的尝试,我找到了解
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位置设置您的最后位置。 而你的问题将得到解决,