根據實際情況調整位置資訊使用方式

本節說明幾個典型的位置資訊收集情境,以及對於地理圍欄和整合式位置預測提供工具 API 的最佳利用建議。

使用者可見或前景更新

範例:需要頻繁、準確的更新,且延遲時間極少的地圖應用程式。所有更新都在前景執行:使用者開始活動、使用位置資料,並在短時間內停止活動。

使用 setPriority() 方法,其值為 PRIORITY_HIGH_ACCURACYPRIORITY_BALANCED_POWER_ACCURACY

setInterval() 方法中指定的間隔時間取決於用途:如果是即時情境,請將值設為幾秒鐘;否則,請限制為幾分鐘 (建議大約 2 分鐘以上,以盡量減少電池用量)。

知道裝置的位置

例如:天氣應用程式想知道裝置的位置。

使用 getLastLocation() 方法,會傳回最新的可用位置 (在極少數情況下可能為空值)。這個方法能夠輕鬆取得位置資訊,並且不會產生主動要求位置資訊更新的相關費用。搭配使用 isLocationAvailable() 方法,當 getLastLocation() 傳回的位置資訊為最新版本時,傳回 true

使用者在特定位置時啟動更新

範例:當使用者在工作、住家或其他位置的特定距離時要求更新。

使用 地理圍欄搭配整合式位置預測提供工具更新。應用程式收到地理圍欄觸發條件時要求更新,並在應用程式收到地理圍欄退出觸發條件時移除更新。這可確保只有在使用者進入已定義的區域時,應用程式才會收到更精細的位置更新通知。

這種情境的典型工作流程可能包括,當地理圍欄進入轉換後立即顯示通知,以及當使用者輕觸通知時,啟動包含要求更新程式碼的活動。

根據使用者的活動狀態啟動更新

範例:只在使用者開車或騎腳踏車時要求更新。

使用 動作語音辨識 API 搭配整合式位置預測提供工具更新。偵測到鎖定活動時要求更新,並在使用者停止執行該活動時移除更新。

這種用途的典型工作流程可能包括,偵測到活動時顯示通知,以及當使用者輕觸通知時啟動包含要求更新程式碼的活動。

與地理區域綁定的長時間執行背景位置資訊更新

範例:使用者想要在裝置位於零售商附近時收到通知。

這是地理圍欄的絕佳用途。因為此用途幾乎必定涵蓋背景位置資訊,所以請使用 addGeofences(GeofencingRequest, PendingIntent) 方法。

請設定下列設定選項:

  • 如果您正在追蹤暫留時間轉換,請使用 setLoiteringDelay() 方法,傳遞一個大約 5 分鐘以內的值。

  • 使用 setNotificationResponsiveness(),傳遞大約 5 分鐘的值。不過,如果您的應用程式可管理額外的回應延遲時間,建議採用大約 10 分鐘的值。

一個應用程式一次只能註冊最多 100 個地理圍欄。在一個用途中,如果一個應用程式想要追蹤大量的零售商選項,那麼這個應用程式可能會想註冊大型地理圍欄 (城市層級),並為大型地理圍欄內的商店動態註冊較小型的地理圍欄 (針對城市內的位置)。使用者進入大型地理圍欄時,新增較小型地理圍欄;當使用者退出較大的地理圍欄時,移除較小型地理圍欄,並為新區域重新註冊地理圍欄。

無需可見的應用程式元件,即可長時間執行背景位置資訊更新

範例:被動追蹤位置的應用程式

請盡可能搭配 PRIORITY_NO_POWER 選項使用 setPriority() 方法,因為這樣幾乎不會消耗電池電力。如果無法使用 PRIORITY_NO_POWER,可以使用 PRIORITY_BALANCED_POWER_ACCURACYPRIORITY_LOW_POWER,但請避免將 PRIORITY_HIGH_ACCURACY 用於持續性的背景工作,因為這個選項會大量耗用電力。

如果您需要更多位置資料,請呼叫 setFastestInterval() 方法使用被動地位,傳遞一個比傳遞至 setInterval() 的值更小的值。與 PRIORITY_NO_POWER 選項搭配使用時,被動定位可以適時傳送其他應用程式計算出的位置資訊,無須額外付費。

使用 setMaxWaitTime() 方法增加一些延遲時間,藉此調節頻率。舉例來說,如果您使用 setinterval() 方法和大約 10 分鐘的設定值,應考慮呼叫的 setMaxWaitTime() 和 30 至 60 分鐘的設定值。使用這些選項時,系統大約每 10 分鐘計算應用程式的位置,但每 30 至 60 分鐘才喚醒應用程式,其中有部分位置資料可批次更新。這個方法會拉長延遲時間,以換取更多資料並提高電池效能。

使用者與其他應用程式互動時,頻繁進行高精確度更新

範例:當使用者關閉螢幕或開啟其他應用程式時,導航或健身應用程式仍會繼續運作。

使用前景服務。如果應用程式可能會以使用者的名義執行費用昂貴的作業,建議的最佳做法是讓使用者瞭解該項作業。前景服務需要持續通知。詳情請參閱「通知總覽」。