此功能允许通过“为驾驶辅助功能使用位置信息”开关单独控制许可名单中的 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) 命令
对于开发和测试,您可以快速检查或更改驾驶员辅助切换开关的状态,而无需使用“位置信息设置”。
- 要使用 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 版本发布即可添加新软件包。您可以在完整汽车测试套件中了解更多信息。