2012-09-09 43 views
2

我正在創建一個應用程序,其中我需要在某個位置的特定半徑範圍內執行操作。但我不想繼續投票的位置,因爲這會耗盡電池。根據位置執行操作

我想爲用戶指定一個選項來指定查詢位置的頻率。不過,我擔心如果用戶設置的時間太長,那麼我的應用將錯過在位置附近執行操作。

我在一個使用Pay With Square的Google IO會話中有一個自動選項卡功能,我不確定他們是否經常輪詢該位置,是否設置了查詢位置之間的延遲或是否有效的第三個選項耗盡電池。

我想問如何解決這個問題的建議。 在此先感謝。

+0

這個答案可能是你在找什麼:http://stackoverflow.com/a/4287279/ 1127492 – Stefan

+0

我現在的問題是,如果不止一個答案包含我正在尋找的全部答案,我可以選擇多個答案嗎? – raistdejesus

回答

1

看起來您的問題實際上是:「如何在保存設備電池的同時獲得準確的位置測量?」

主要有兩種方式,以節省電池,並有良好的定位:

  1. 不要使用GPS(這是一個真正的電池HOG)
  2. 設置輪詢行動
之間的大的間隔

只使用Wi-Fi和手機單元數據,您可以獲得相當好的定位(從半徑40到150米,這在很多情況下比GPS好)。只需在您的代碼中選擇「ACCURACY_COARSE」,「ACCURACY_LOW」和/或「POWER_LOW」作爲提供者選擇標準即可。

看到谷歌開發者的網站下面的鏈接:

,特別是這兩個:

可以選擇/設定的用戶的所測得的速度的基礎上的省電輪詢間隔。如果用戶正在行走(小於5公里/小時),則可以使用30到60秒的時間間隔,而沒有任何風險可能會錯過警報。如果用戶正在開車(超過50公里/小時),則必須設置1到10秒的時間間隔。考慮位置空間準確度通常相當差(100米左右),所以試圖用極高的準確度「極高」點來做這個點是非常沒有意義的。

查看Google文檔也是一樣。

在任何情況下,Google都明確建議不要嘗試使用自己的代碼節省電池,並依賴於getProviders標準。

+0

謝謝。我認爲這加上另一個答案會給我足夠的信息,我需要。 – raistdejesus

1

如果我理解的很好,當設備的位置處於某個位置的預定義半徑時,您希望觸發某個事件。如果這是一個問題,您可以使用一種稱爲Proximity Alerts的自動化機制。所以只是谷歌它,或試試這http://www.javacodegeeks.com/2011/01/android-proximity-alerts-tutorial.html。我還沒有看過它,但它對我來說第一眼看起來很好

+0

謝謝。這絕對是內容豐富的。雖然它並不完全適用於我想要實現的目標,但其中仍然有可用的信息。再次感謝。 – raistdejesus