Automotive Location Bypass API

這項功能可讓您透過「使用位置資訊提供駕駛輔助功能」切換鈕,分別控管許可清單中 Android 隨附的駕駛輔助應用程式的位置存取權。這樣一來,即使關閉「使用位置資訊」切換鈕,這些應用程式也能存取位置資訊。

  • Android 12 不會為這項功能提供公開 API。駕駛輔助應用程式應照常要求位置更新通知。
  • Android 13 以上版本必須提出位置要求才能使用 LocationManager.requestLocationUpdates(),並傳入以 LocationRequest.setAdasGnssBypass(true) 設定的 LocationRequest 物件。

使用駕駛輔助位置略過 API

以下各節說明如何使用駕駛輔助位置繞過 API。如要進一步瞭解使用政策,請參閱「地點略過功能許可清單政策」。

檢查駕駛輔助系統開關狀態

在 Android 13 以上版本中,您可以在要求位置更新之前,先檢查駕駛輔助切換鈕狀態。

// Returns the current status of "Use location for driver assistance".
locationManager.isAdasGnssLocationEnabled();

執行 Android Debug Bridge (ADB) 指令

在開發和測試期間,您可以快速檢查或變更駕駛輔助功能切換鈕的狀態,而無需使用位置設定。

  1. 如要使用 ADB 指令查看或變更狀態,請按照下列步驟操作:
    // Gets the status of ADAS location.
    adb shell cmd location is-adas-gnss-location-enabled
    
    // Enables ADAS location.
    adb shell cmd location set-adas-gnss-location-enabled true
    
    // Disables ADAS location.
    adb shell cmd location set-adas-gnss-location-enabled false

設定權限

如需特定 Android 版本的資訊,請參閱以下內容:

  1. 在 Android 12 中,駕駛輔助應用程式必須具備 WRITE_SECURE_SETTINGS 權限。
  2. 在 Android 13 以上版本中,必須具備 LOCATION_BYPASS 權限。

將應用程式加入裝置的許可清單

etc/sysconfig 目錄中:

  1. 在系統設定 XML 檔案中新增應用程式的套件名稱:
  2. <!-- In a xml file under etc/sysconfig>
    <config>
    
    <allow-adas-location-settings package="PACKAGE-NAME" />
    
    </config>

為確保套件會顯示在位置設定 UI 中,請將套件名稱加入 config_locationDriverAssistancePackageNames

將應用程式的隱私權政策揭露網址新增至 AndroidManifest.xml。中繼資料的名稱應為 privacy_policy

<meta-data android:name="privacy_policy" android:value= privacy policy URL/>

移除「開啟定位功能以便使用駕駛輔助功能」切換鈕

如果您沒有使用位置資訊的駕駛輔助應用程式,從 Android 要求位置資訊,您可以註解程式碼區塊,移除位置設定的切換鈕。

  1. 開啟 packages/apps/Car/Settings/res/xml/location_settings_fragment.xml,然後將下列程式碼註解掉。
    <com.android.car.ui.preference.CarUiTwoActionSwitchPreference
    
        android:fragment="com.android.car.settings.location.AdasLocationFragment"
    
        android:key="@string/pk_location_driver_assistance_state_switch"
    
        android:title="@string/location_driver_assistance_toggle_title"
    
        android:summary="@string/location_driver_assistance_toggle_summary"
    
    
    settings:controller="com.android.car.settings.location.AdasLocationSwitchPreferenceController"
    
        settings:searchable="true"/>
    
      <com.android.car.settings.common.DividerPreference/>
  2. 移除切換鈕後,請將 config_defaultAdasGnssLocationEnabled 設為 false

執行 Automotive 測試套件

Google 提供汽車測試套件 (ATS) 測試,可確保裝置上的所有駕駛輔助套件都已列入 Google 許可清單。測試已從遠端設定。您不必等到下次 ATS 版本發布,即可新增套件。如需進一步瞭解,請參閱「Complete Automotive Tests in a Box」。