本頁面將說明以下內容:
- 如何要求背景位置資訊存取權。
- 如何根據應用程式的目標 SDK 版本處理要求。
- 使用者對大概位置的偏好設定如何影響應用程式取得背景位置資訊的方式。
權限對話方塊的內容取決於目標 SDK 版本
當應用程式功能在搭載 Android 10 (API 級別 29) 的裝置上要求背景位置資訊時,系統權限對話方塊包含名稱為「一律允許」的選項。如果使用者選取此選項,應用程式功能就會取得背景位置資訊存取權。
不過,在 Android 11 (API 級別 30) 及以上版本中,系統對話方塊不包含一律允許選項。使用者必須改為在設定頁面啟用背景位置資訊,如圖 7 所示。
使用者要求背景位置資訊存取權時,您可以遵循最佳做法,協助他們前往設定頁面。授予權限的程序視應用程式的目標 SDK 版本而定。
應用程式指定 Android 11 或以上版本
如果您的應用程式尚未取得 ACCESS_BACKGROUND_LOCATION
權限,且 shouldShowRequestPermissionRationale()
傳回 true
,請向使用者顯示含有以下內容的教育性質 UI:
- 清楚說明應用程式功能需要存取背景位置資訊的原因。
- 使用者可以看到的授權背景位置資訊的選項設定標籤 (例如,圖 7 中的「一律允許」)。您可以呼叫
getBackgroundPermissionOptionLabel()
取得此標籤。此方法的傳回值會根據使用者裝置的語言偏好設定進行本地化。 - 使用者拒絕權限的選項。如果使用者拒絕背景位置資訊存取權,他們應能繼續使用應用程式。
應用程式指定 Android 10 或以下版本
當應用程式功能要求背景位置資訊存取權時,使用者會看到系統對話方塊。此對話方塊包含前往設定頁面上的位置資訊存取權選項。
如果應用程式已經遵循要求位置存取權的最佳做法,則無須做出任何變更即可支援此行為。
使用者可影響背景位置資訊的精確度
如果使用者要求概略位置,使用者的位置存取權對話方塊也會選擇背景位置資訊。換句話說,如果使用者授予應用程式 ACCESS_BACKGROUND_LOCATION
權限,但只在前景中授予概略位置資訊存取權,應用程式在背景中也只有概略位置資訊存取權。
其他資源
如要進一步瞭解 Android 中的位置存取權,請參閱下列資料:
程式碼研究室
影片
範例
- 這個範例應用程式示範位置存取權的使用方式。