API de Automotive Location Bypass

Esta función permite el acceso a la ubicación de los conductores incluidos en la lista de entidades permitidas y paquetes de Android las apps de asistencia se controlarán por separado mediante la opción "Usar la ubicación para el conductor “asistencia”. Esto permite que estas apps accedan a la ubicación incluso cuando la opción "Usar ubicación" esté desactivado.

  • Android 12 no proporciona una API pública para esto . 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 LocationRequest objeto configurado con LocationRequest.setAdasGnssBypass(true)

Cómo usar la API de evasión de la ubicación de asistencia al conductor

En las siguientes secciones, se describe cómo usar la API de omisión de ubicación de asistencia al conductor. Para aprender más sobre la política de uso, consulta Política de la lista de entidades permitidas para la omisión de la ubicación.

Cómo verificar el estado del interruptor de asistencia al conductor

En Android 13 y versiones posteriores, puedes verificar el estado del interruptor de la asistencia al conductor antes de solicitar actualizaciones de ubicación.

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

Cómo ejecutar comandos de Android Debug Bridge (ADB)

Para el desarrollo y las pruebas, puedes verificar o cambiar rápidamente el estado de la asistencia al conductor activar o desactivar sin usar la Configuración de ubicación.

  1. Si quieres usar los comandos de ADB para 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 lo siguiente para conocer las versiones de Android específicas de la versión:

  1. En Android 12, las apps de asistencia al conductor deben tener lo siguiente: WRITE_SECURE_CONFIGURACIÓN permiso.
  2. En Android 13 y versiones posteriores, la El permiso LOCATION_BYPASS es obligatorio.

Agrega una app a la lista de entidades permitidas de tu dispositivo

En el directorio etc/sysconfig, haz lo siguiente:

  1. Agrega el nombre del paquete de la app en un archivo XML de configuración del sistema:
  2. <!-- 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 la ubicación, agrega el nombre de tu paquete a config_locationDriverAssistancePackageNames

Agrega a AndroidManifest.xml la URL de la divulgación de la política de privacidad de la app. El nombre de los metadatos debe ser privacy_policy.

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

Quita el interruptor "Usar la ubicación para la asistencia al conductor".

Si no tienes una app de asistencia al conductor basada en la ubicación que solicite la ubicación desde Android, haz lo siguiente: puedes marcar como comentario el bloque de código para eliminar el interruptor de la Configuración de ubicación.

  1. Abierta 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/>
    
  2. Después de quitar el interruptor, establece config_defaultAdasGnssLocationEnabled en false

Ejecuta el paquete de pruebas de Automotive

Google ofrece una prueba con el conjunto de pruebas de Automotive (ATS), que garantiza que toda la asistencia al conductor Los paquetes de un dispositivo se incluyeron en la lista de entidades permitidas de Google. La prueba se configura de forma remota. Tú no necesitas esperar hasta el próximo lanzamiento de ATS para agregar un nuevo paquete. Puedes obtener más información en Complete pruebas de Automotive en una caja.