在Android 2.3.6上,LocationClient.getLastLocation()始终返回null

在Android 2.3.6上,LocationClient.getLastLocation()始终返回null,android,google-play-services,location-client,Android,Google Play Services,Location Client,我正在使用官方文档中描述的LocationClient。 在安卓4.1上一切正常+ 然而,在安卓2.3.6设备上,getLastLocation()系统性地返回null,无论何时或调用多少次。 我已经重新启动了设备(这使得相同的问题在Android 4.1上消失) 服务可用;调用onConnect();该应用程序具有适当的权限(这是显而易见的,否则它也无法在4.1上工作);gps和wifi位置在系统设置中启用。谷歌地图和其他位置感知应用程序运行良好。我确实安装了谷歌游戏商店 还有什么不对劲 我注

我正在使用官方文档中描述的LocationClient。 在安卓4.1上一切正常+

然而,在安卓2.3.6设备上,getLastLocation()系统性地返回null,无论何时或调用多少次。 我已经重新启动了设备(这使得相同的问题在Android 4.1上消失)

服务可用;调用onConnect();该应用程序具有适当的权限(这是显而易见的,否则它也无法在4.1上工作);gps和wifi位置在系统设置中启用。谷歌地图和其他位置感知应用程序运行良好。我确实安装了谷歌游戏商店

还有什么不对劲


我注意到Google Play Services的安装版本是5.0左右,而最新版本是6.1。这正常吗?它应该保持自动更新,事实上它通常是这样的,因为这个版本的日期是2014年7月,而且这个设备要旧得多。我猜这是2.3.6的最新版本?

你真的开始通过应用程序中的
LocationRequest
监听位置更新了吗?不,我没有。据我所知,这是不必要的。第一次调用getLastLocation()时,您可能会得到null,但一旦某个位置可用,它就会自动透明地存储,并且您应该能够使用getLastLocation()获得它。它应该避免监听更新的复杂性,除非每次更新位置时都需要通知你。然而,几个小时后,它开始工作,所以这似乎不是Android版本的问题,而是一些常见的错误。也许和我在4.1中所经历的一样,只是在这种情况下(也许只是碰巧),重新启动就足够了。通过LocationRequest开始监听真的有什么不同吗?这是不应该的。如果一切都按文档记录的方式进行,唯一的区别是当位置可用时会通知您,但不应使其更早可用。仅连接LocationClient本身应使该位置尽快可用。但如果事情没有像文件所记载的那样起作用,我也不会感到惊讶:它们很少起作用。你的经验是这样吗?