您可以確定是否有任何提供商可以使用LocationManager,但可以使用google play服務位置api嗎?所有API調用(connect(),requestLocationUpdates())都會成功,但您永遠不會獲得onLocationChanged()。安卓支票位置服務已啓用播放服務位置api
似乎很難使用LocationManager和LocationClient。
我想我需要的是一些方法來知道onLocationChanged(0將永遠被調用。
您可以確定是否有任何提供商可以使用LocationManager,但可以使用google play服務位置api嗎?所有API調用(connect(),requestLocationUpdates())都會成功,但您永遠不會獲得onLocationChanged()。安卓支票位置服務已啓用播放服務位置api
似乎很難使用LocationManager和LocationClient。
我想我需要的是一些方法來知道onLocationChanged(0將永遠被調用。
我梳理了文檔,也沒有發現任何方式使用LocationClient來檢測,如果位置服務已啓用onConnected,onDisconnected和onConnectionFailed似乎並未鏈接到是否啓用位置服務
我目前正在使用LocationClient執行位置請求,但使用舊的locationManager.isProviderEnabled(String provider)
方法來檢測位置服務服務已啓用,這對我來說是最合適的,因爲即使LocationClient確實提供了一種方式,也沒有d GPS和網絡之間的消失,我真的很想要求用戶啓用GPS。
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
//GPS Provider disabled
return false;
}
現在有檢測位置是否有更新可用,因爲谷歌播放服務7.3.0的可靠方式:
實現並註冊一個LocationCallback
並覆蓋onLocationAvailability()
或致電LocationServices.FusedLocationApi.getLocationAvailability()
取回可用狀態。如果它是錯誤的,那麼你知道位置更新不會被傳遞,除非設備配置中有所改變。
這種方法實際上非常聰明:例如,如果WiFi被禁用或設備處於飛行模式,即使網絡位置提供商能夠確定沒有位置更新將在僅WiFi設備上傳送始終啓用。
返回位置數據的可用性。當isLocationAvailable()返回true時,getLastLocation(GoogleApiClient)返回的位置將在活動LocationRequests指定的提示內合理更新。 據我瞭解,顯示是否有一些位置數據當前可用,而不是位置服務是否啓用。 – lujop
Google Play Services 7.0 introduced a Settins Api您可以在其中詢問您需要的位置設置,然後查詢是否啓用或要求用戶啓用它們。
謝謝 - 也許有人從谷歌會看到這個並修復它 – user1248322
我覺得這很奇怪! – Bear
'if(lm.isProviderEnabled(LocationManager.GPS_PROVIDER)|| lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){}'我認爲是最完整的方法。 Doc說: – Diolor