2

我們的應用程序使用Google Fused位置API每3分鐘接收位置更新。 位置請求的設置如下 -融合位置API在關閉谷歌地圖後給出高度不準確的位置

  • 間隔 - 3min
  • 最快間隔 - 1 min
  • 優先級 - PRIORITY_BALANCED_POWER_ACCURACY

在正常運行情況下,該位置更新被正確地接收和定位精度非常好(大約20-25米)。

當Maps應用程序打開時,它接收到GPS位置,因此我們的應用程序也開始接收位置更新,這些更新基本上來自GPS收發器(我知道這是因爲隨後的位置更新也具有速度和高度值)。

地圖應用程序現在關閉時會出現問題。我們的應用程序接收位置更新,但位置座標不會更改,並且接收到的每個後續更新都具有更高的準確度值。更新可能會達到1000m的準確度,並且不會收到準確的位置。再次打開地圖應用程序將使我們的應用程序再次獲得準確和更新的位置。

這個問題也可以是設備特定的,因爲我在摩托羅拉Moto G上看到這個問題,而不是在我的其他三星或Karbonn手機上。

+0

這可能有幫助 - http://stackoverflow.com/questions/20330606/google-play-services-for-android-location-client-not-update-location-if-wifi-di –

回答

0

根據我的經驗,將優先權設置爲PRIORITY_BALANCED_POWER_ACCURACY決不會從GPS獲取位置,除非其他應用正在使用它。這與您在應用中發現的行爲相同(在您的情況下,只有在地圖打開時您才能獲得GPS定位),這似乎是一般行爲(請參閱Does PRIORITY_BALANCED_POWER_ACCURACY exclude the GPS provider?)。

我還沒有找到任何官方文檔來背景,所以我認爲它可能是設備相關的。在我的測試中,每當我需要GPS定位時,我需要將優先級更改爲PRIORITY_HIGH_ACCURACY

無論如何,有一個已知問題(57707)在某些設備上顯示,導致位置提供程序在PRIORITY_BALANCED_POWER_ACCURACY中設置時停止接收位置更新,直到設備重新啓動。