如要求位置存取權和隱私權最佳做法等頁面所述,應用程式如需要求位置存取權,必須是面向使用者的核心功能,並應適當向使用者揭露這項資訊。在多數情況下,只有在使用者與應用程式互動時才需要位置資訊。如果應用程式需要背景位置資訊 (例如實作地理圍欄時),請確保該項資訊對於應用程式的核心功能至關重要,且對使用者明顯有利,並以顯而易見的方式完成。
注意:Google Play 商店已更新規範裝置位置資訊的政策,針對需要背景位置存取權才能執行核心功能且符合相關政策規定的應用程式,設定相關限制。採用這些最佳做法,並不能保證 Google Play 核准您的應用程式在背景使用位置資訊。
進一步瞭解裝置位置資訊相關的政策異動。
背景位置資訊存取權檢查清單
請使用下列檢查清單找出潛在的背景位置資訊存取權邏輯:
在應用程式的資訊清單中,檢查是否具有
ACCESS_COARSE_LOCATION
權限和ACCESS_FINE_LOCATION
權限。請確認您的應用程式需要這些位置存取權。- 如果應用程式指定的是 Android 10 (API 級別 29) 以上版本,請一併檢查是否具有
ACCESS_BACKGROUND_LOCATION
權限。請確認應用程式有提供需要這項權限的功能。
- 如果應用程式指定的是 Android 10 (API 級別 29) 以上版本,請一併檢查是否具有
在程式碼中找出使用的位置資訊存取權 API,例如 Fused Location Provider API、Geofencing API 或 LocationManager API,如下列結構所示:
- 背景服務
JobIntentService
物件WorkManager
或JobScheduler
工作AlarmManager
作業- 透過應用程式小工具叫用的待處理意圖
如果應用程式使用會存取位置資訊的 SDK 或程式庫,系統會將這項存取歸因於您的應用程式。如要判斷 SDK 或程式庫是否需要位置資訊存取權,請參閱該程式庫的說明文件。
評估背景位置資訊存取權
如果您發現自己的應用程式在背景存取位置資訊,建議您採取下列做法:
- 評估背景位置資訊存取權是否對於應用程式的核心功能至關重要。
如果不需要在背景存取位置資訊,請將背景位置資訊存取權移除。
如果應用程式指定的是 Android 10 (API 級別 29) 以上版本,請從應用程式的資訊清單中移除
ACCESS_BACKGROUND_LOCATION
權限。移除這項權限後,應用程式就無法在搭載 Android 10 的裝置上選擇「一律允許」位置資訊存取權。確認使用者知道您的應用程式會在背景存取位置資訊。這在使用者不易察覺這種狀況時特別重要。
盡可能重構位置資訊存取邏輯,讓應用程式只有在使用者看得到應用程式的活動時,才要求位置資訊。
有限的背景位置資訊更新
如果應用程式必須存取背景位置資訊,請謹記系統會在搭載 Android 8.0 (API 級別 26) 以上版本的裝置上設定「背景位置資訊限制」,藉此延長 Android 裝置的電池續航力。在這類 Android 版本中,如果應用程式在背景執行,每小時只能接收數次的位置更新。進一步瞭解背景位置資訊限制。
其他資源
如要進一步瞭解背景位置資訊的使用方式,請參閱下列資料:
影片
範例
歡迎參考範例,瞭解應用程式在背景執行時,存取位置資訊的最佳做法。