3 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
目前,Fused Location Provider
如果至少有一個(gè)客戶端連接到它,則僅保留后臺(tái)位置。一旦第一個(gè)客戶端連接,它將立即嘗試獲取位置。如果您的活動(dòng)是第一個(gè)客戶端連接,并調(diào)用getLastLocation()
在馬上onConnected()
,可能沒有足夠的時(shí)間在第一位置進(jìn)去。

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
按照教程中的說明我遇到了同樣的問題。在電話上它工作,并在(Genymotion)模擬器它沒有。
解
在AndroidManifest.xml中,更改以下內(nèi)容:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
對(duì)此:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
......然后你馬上就到了。無需更改代碼(以收聽位置更新)。

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
您的設(shè)備未啟用“Wi-Fi和移動(dòng)網(wǎng)絡(luò)位置”也可能導(dǎo)致此問題。
LocationClient(融合位置提供商)使用GPS和WiFi。GPS需要一段時(shí)間才能找到您的位置,而wifi速度要快得多。但是,如果連接了這兩個(gè)服務(wù)中的任何一個(gè),則將調(diào)用onConnected的回調(diào)方法。如果您嘗試立即在onConnected方法中調(diào)用LocationClient.getLastLocation(),那么如果您的wifi位置服務(wù)被禁用,則很可能會(huì)獲得空值。這只是因?yàn)镚PS不夠快。
要在本地解決問題,請(qǐng)啟用“Wi-Fi和移動(dòng)網(wǎng)絡(luò)位置”。您可以轉(zhuǎn)到“設(shè)置>個(gè)人>位置訪問> Wi-Fi和移動(dòng)網(wǎng)絡(luò)位置”來執(zhí)行此操作。
但是,如果要為應(yīng)用程序的用戶解決問題,最好檢查getLastLocation()是否返回null。如果是,請(qǐng)?zhí)崾灸挠脩魡⒂迷摲?wù),就像谷歌地圖一樣。
希望,這有幫助。
- 3 回答
- 0 關(guān)注
- 934 瀏覽
添加回答
舉報(bào)