借助此功能,您可以通过“使用位置信息提供驾驶辅助功能”开关,单独控制已列入许可名单且与 Android 绑定的驾驶辅助应用的位置信息访问权限。这样一来,即使“使用位置信息”开关处于关闭状态,这些应用也能获取位置信息。
- Android 12 不为此功能提供公共 API。驾驶辅助应用应像往常一样请求位置信息更新。
- Android 13 及更高版本必须发出位置信息请求,才能使用
LocationManager.requestLocationUpdates()
并传入已配置LocationRequest.setAdasGnssBypass(true)
的LocationRequest
对象。
使用 Driver Assistance Location Bypass API
以下部分介绍了如何使用 Driver Assistance Location Bypass API。如需详细了解使用政策,请参阅位置信息绕过许可名单政策。
查看驾驶辅助开关状态
在 Android 13 及更高版本中,您可以在请求位置信息更新之前检查驾驶辅助开关状态。
// Returns the current status of "Use location for driver assistance".
locationManager.isAdasGnssLocationEnabled();
运行 Android 调试桥 (ADB) 命令
对于开发和测试,您无需使用位置信息设置即可快速检查或更改驾驶辅助功能的状态。
- 如需使用 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 版本的权限,请参阅以下内容:
- 在 Android 12 中,驾驶辅助应用必须具有 WRITE_SECURE_SETTINGS 权限。
- 在 Android 13 及更高版本中,需要
LOCATION_BYPASS
权限。
将应用添加到设备的许可名单中
在 etc/sysconfig
目录中执行以下操作:
- 将应用的软件包名称添加到系统配置 XML 文件中:
<!-- In a xml file under etc/sysconfig–>
<config>
…
<allow-adas-location-settings package="PACKAGE-NAME" />
…
</config>
如需确保您的软件包显示在位置信息设置界面中,请将软件包名称添加到 config_locationDriverAssistancePackageNames
。
将应用的隐私权政策披露网址添加到 AndroidManifest.xml
。元数据的名称应为 privacy_policy
。
<meta-data android:name="privacy_policy" android:value= privacy policy URL/>
移除“使用位置信息提供驾驶辅助功能”开关
如果您没有位置信息驱动的驾驶辅助应用从 Android 请求位置信息,您可以注释掉代码块以移除“位置信息设置”开关。
- 打开
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/> - 移除该开关后,将
config_defaultAdasGnssLocationEnabled
设为false
。
运行汽车测试套件
Google 提供了汽车测试套件 (ATS) 测试,以确保设备上的所有驾驶辅助软件包均已列入 Google 的许可名单。测试已远程配置。您无需等待下一个 ATS 版本就能添加新软件包。如需了解详情,请参阅 Complete Automotive Tests in a Box。