2016-12-30 102 views
0

我已經爲我的Android應用程序設置了Google的融合位置API,並且能夠接收位置更新(由於我的更新間隔設置爲60000,因此每隔一分鐘我就會更新一次gps座標),當將優先級設置爲PRIORITY_HIGH_ACCURACY ,但在使用「PRIORITY_BALANCED_POWER_ACCURACY」時不成功什麼時候使用PRIORITY_BALANCED_POWER_ACCURACY的Android FusedLocationApi更新位置

我的問題如下: PRIORITY_BALANCED_POWER_ACCURACY何時/如何實際更新位置? 顯然它根本不使用gps,onLocationChanged()在跳到不同的wifi網絡/手機信號塔時會被調用嗎?

我問,因爲我需要一種測試方式,不知道如果一個模擬器可以做到這一點。我有一個物理的android手機,但它只有wifi。

TLDR onLocationChanged()獲取使用基於PRIORITY_HIGH_ACCURACY時調用(的setInterval()/ setFastestInterval或setSmallestDisplacement()),但使用PRIORITY_BALANCED_POWER_ACCURACY什麼時候onLocationChanged時()被調用?

我非常感謝幫助,謝謝!

回答

3

PRIORITY_BALANCED_POWER_ACCURACY什麼時候/如何實際更新 位置?顯然,它根本不使用GPS,所以當跳到不同的WiFi 網絡/基站時,onLocationChanged()會被調用嗎?

答:低功耗的影響。這些應用程序應考慮將PRIORITY_BALANCED_POWER_ACCURACY與更快的setFastestInterval(long)(例如1分鐘)和較慢的setInterval(long)(例如60分鐘)組合。他們只會在setInterval(long)設置的時間間隔內被分配功率責任,但仍可以接收由其他應用觸發的位置,其速率最高可達setFastestInterval(long)。這種請求風格適用於許多位置感知應用程序,包括後臺使用情況。如果您在收到更新(如使用網絡)後執行了重量級的工作,請注意也可以節流setFastestInterval(long)

但使用 PRIORITY_BALANCED_POWER_ACCURACY時什麼時候onLocationChanged()被調用?

答:onLocationChanged()將調用,而在你的setInterval() & setFastestInterval().

編輯位置變化的基礎:

類型之間的區別PRIORITY_BALANCED_POWER_ACCURACY & PRIORITY_HIGH_ACCURACY

使用具有優先級不變,如PRIORITY_HIGH_ACCURACY 。沒有其他值被接受。

該請求的優先級對位置源使用的LocationClient有很強的暗示。例如,PRIORITY_HIGH_ACCURACY更可能使用GPS,而PRIORITY_BALANCED_POWER_ACCURACY更可能使用WIFI定位,但它也取決於許多其他因素(例如哪些來源可用)並且取決於實施。

我需要一種測試方法,不知道如果一個模擬器可以做到這一點。

答:您可以使用發送僞造的位置模擬器中測試這種情況。

+0

謝謝Chintan的響應! – Sethsmagic

+1

只是爲了澄清,你是說一套onLocationChanged()被調用基於純粹的)的setInterval()setFastestInterval(儘管這setpriority()可我用的? (又名PRIORITY_HIGH_ACCURACY或PRIORITY_BALANCED_POWER_ACCURACY) – Sethsmagic

+0

如果我的上面的評論是真的,那麼PRIORITY_HIGH_ACCURACY和PRIORITY_BALANCED_POWER_ACCURACY純粹是爲了準確性,並且與onLocationChanged()被調用的頻率無關。那是對的嗎? – Sethsmagic

相關問題