Esta función permite que el acceso a la ubicación de las apps de asistencia al conductor incluidas en la lista de entidades permitidas y empaquetadas en Android se controle por separado con el interruptor "Usar ubicación para la asistencia al conductor". Esto permite que estas apps accedan a la ubicación incluso cuando el interruptor "Usar ubicación" está desactivado.
- Android 12 no proporciona una API pública para esta función. Las apps de asistencia al conductor deben solicitar actualizaciones de ubicación como de costumbre.
- Android 13 y versiones posteriores deben realizar una solicitud de ubicación para usar
LocationManager.requestLocationUpdates()
y pasar un objetoLocationRequest
configurado conLocationRequest.setAdasGnssBypass(true)
.
Usa la API de Driver Assistance Location Bypass
En las siguientes secciones, se describe cómo usar la API de omisión de ubicación de asistencia al conductor. Para obtener más información sobre la política de uso, consulta la política de la lista de entidades permitidas para omitir la ubicación.
Verifica el estado del interruptor de asistencia al conductor
En Android 13 y versiones posteriores, puedes verificar el estado del interruptor de asistencia al conductor antes de solicitar actualizaciones de ubicación.
// Returns the current status of "Use location for driver assistance". locationManager.isAdasGnssLocationEnabled();
Ejecuta comandos de Android Debug Bridge (ADB)
Para el desarrollo y las pruebas, puedes verificar o cambiar rápidamente el estado del botón de activación de la asistencia al conductor sin usar la Configuración de ubicación.
- Para usar los comandos de ADB y verificar o cambiar el estado, haz lo siguiente:
// 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
Establecer permiso
Consulta la siguiente información para conocer las versiones específicas de Android:
- En Android 12, las apps de asistencia al conductor deben tener el permiso WRITE_SECURE_SETTINGS.
- En Android 13 y versiones posteriores, se requiere el permiso
LOCATION_BYPASS
.
Cómo agregar una app a la lista de entidades permitidas en tu dispositivo
En el directorio etc/sysconfig
:
- Agrega el nombre del paquete de la app en un archivo en formato XML de configuración del sistema:
<!-- In a xml file under etc/sysconfig–> <config> … <allow-adas-location-settings package="PACKAGE-NAME" /> … </config>
Para asegurarte de que tu paquete aparezca en la IU de Configuración de ubicación, agrega el nombre del paquete a config_locationDriverAssistancePackageNames
.
Agrega la URL de la divulgación de la política de privacidad de la app a AndroidManifest.xml
. El nombre de los metadatos debe ser privacy_policy
.
<meta-data android:name="privacy_policy" android:value= privacy policy URL/>
Quita el interruptor "Usar ubicación para la asistencia al conductor".
Si no tienes una app de asistencia al conductor con ubicación que solicite la ubicación de Android, puedes comentar el bloque de código para quitar el interruptor de la configuración de ubicación.
- Abre
packages/apps/Car/Settings/res/xml/location_settings_fragment.xml
y, luego, comenta el siguiente código.<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/>
- Después de quitar el interruptor, establece
config_defaultAdasGnssLocationEnabled
enfalse
.
Ejecuta el conjunto de pruebas de Automotive
Google proporciona una prueba de Automotive test suite (ATS), que garantiza que todos los paquetes de asistencia al conductor de un dispositivo estén incluidos en la lista de entidades permitidas de Google. La prueba se configura de forma remota. No necesitas esperar hasta la próxima versión de ATS para agregar un paquete nuevo. Puedes obtener más información en Complete Automotive Tests in a Box.