汽車位置旁路 API,汽車位置旁路 API,汽車位置旁路 API,汽車位置旁路 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 調試橋 (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

將應用程式的隱私權政策揭露 URL 新增至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

運行汽車測試套件

Google 提供了汽車測試套件 (ATS) 測試,可確保設備上的所有駕駛輔助套件都已列入 Google 授權名單。測試是遠端配置的。您無需等到下一個 ATS 版本才新增軟體包。您可以在“完整的汽車測試盒”中了解更多。