3 回答
TA贡献1891条经验 获得超3个赞
目前,Fused Location Provider
如果至少有一个客户端连接到它,则仅保留后台位置。一旦第一个客户端连接,它将立即尝试获取位置。如果您的活动是第一个客户端连接,并调用getLastLocation()
在马上onConnected()
,可能没有足够的时间在第一位置进去。
TA贡献1111条经验 获得超0个赞
按照教程中的说明我遇到了同样的问题。在电话上它工作,并在(Genymotion)模拟器它没有。
解
在AndroidManifest.xml中,更改以下内容:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
对此:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
......然后你马上就到了。无需更改代码(以收听位置更新)。
TA贡献1825条经验 获得超4个赞
您的设备未启用“Wi-Fi和移动网络位置”也可能导致此问题。
LocationClient(融合位置提供商)使用GPS和WiFi。GPS需要一段时间才能找到您的位置,而wifi速度要快得多。但是,如果连接了这两个服务中的任何一个,则将调用onConnected的回调方法。如果您尝试立即在onConnected方法中调用LocationClient.getLastLocation(),那么如果您的wifi位置服务被禁用,则很可能会获得空值。这只是因为GPS不够快。
要在本地解决问题,请启用“Wi-Fi和移动网络位置”。您可以转到“设置>个人>位置访问> Wi-Fi和移动网络位置”来执行此操作。
但是,如果要为应用程序的用户解决问题,最好检查getLastLocation()是否返回null。如果是,请提示您的用户启用该服务,就像谷歌地图一样。
希望,这有帮助。
- 3 回答
- 0 关注
- 912 浏览
添加回答
举报