背景位置資訊使用

對於在背景存取使用者位置資訊的應用程式,Android 14 (Android U) 推出新的限制。為協助減少這些變更,Navigation SDK 已於 5.3.2 版更新,以便更妥善地管理背景位置資訊存取權。此外,建議您更新實作項目,確保應用程式能繼續存取最精確的位置資料。

Android 14 中的異動對 Navigation SDK 的影響

在應用程式中叫用 startGuidance() 時,前景服務就會開始顯示即時路線導航的使用者通知。即時路線導航需要存取使用者的位置資訊,才能更新路線並顯示正確的視覺和語音導覽。自 Android 14 起,必須取得使用者授權,才能在背景存取使用者的精確位置。根據預設,如果應用程式不具備背景位置資訊存取權的使用者權限,並嘗試啟動位置更新存取權的前景服務,系統會擲回 SecurityException,導致應用程式停止運作。

Navigation SDK 如何降低這個問題

從 5.3.2 版開始,Navigation SDK 會在不影響應用程式的情況下處理這個 SecurityException,讓導覽功能繼續在背景執行。此外,Navigation SDK 的 AndroidManifest 也包含 ACCESS_BACKGROUND_LOCATION 權限。這樣一來,應用程式就不需要宣告權限本身,因為 Gradle 合併作業會處理權限。但是,如果應用程式進入背景前,未向使用者顯示通知,Navigation SDK 將依靠系統提供位置更新通知。這類系統更新可能不太頻繁或準確,還會導致導航體驗不佳。因此,我們建議您也提示使用者授予背景位置資訊存取權。

應用程式開發人員可採取哪些措施,提高導航精確度

如要提高 Navigation SDK 使用位置信號的準確度,您可以更新應用程式,提示使用者授予背景位置資訊存取權。這類提示應向使用者說明,授予權限能提升應用程式位置準確度,並改善應用程式在背景執行時的導航體驗。

權限範例對話方塊

如要進一步瞭解如何提示使用者取得位置資訊存取權,請參閱「要求位置存取權 | 感應器和位置 | Android 開發人員」。