API de omisión de ubicación automotriz

Esta función permite que el acceso a la ubicación de aplicaciones de asistencia al conductor incluidas en Android incluidas en la lista permitida se controle por separado mediante el interruptor "Usar ubicación para asistencia al conductor". Esto permite que estas aplicaciones 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 aplicaciones de asistencia al conductor deberían 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 objeto LocationRequest configurado con LocationRequest.setAdasGnssBypass(true) .

Utilice la API de omisión de ubicación de asistencia al conductor

Las siguientes secciones describen cómo utilizar la API de omisión de ubicación de asistencia al conductor. Para obtener más información sobre la política de uso, consulte Política de lista de permitidos de omisión de ubicación .

Comprobar el estado del interruptor de asistencia al conductor

En Android 13 y versiones posteriores, puede 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();

Ejecute los comandos de Android Debug Bridge (ADB)

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

  1. Para usar comandos ADB para verificar o cambiar el estado:
    // 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

Consulte lo siguiente para conocer las versiones de Android específicas de la versión:

  1. En Android 12, las aplicaciones de asistencia al conductor deben tener el permiso WRITE_SECURE_SETTINGS .
  2. En Android 13 y versiones posteriores, se requiere el permiso LOCATION_BYPASS .

Agregue una aplicación a la lista de permitidos en su dispositivo

En el directorio etc/sysconfig :

  1. Agregue el nombre del paquete de la aplicación 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 asegurarse de que su paquete aparezca en la interfaz de usuario de Configuración de ubicación, agregue el nombre de su paquete a config_locationDriverAssistancePackageNames .

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

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

Retire el "Usar ubicación para el interruptor de asistencia al conductor"

Si no tiene una aplicación de asistencia al conductor basada en la ubicación que solicite la ubicación de Android, puede comentar el bloque de código para eliminar el interruptor de Configuración de ubicación.

  1. Abra packages/apps/Car/Settings/res/xml/location_settings_fragment.xml y luego comente 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, configure config_defaultAdasGnssLocationEnabled en false .

Ejecute el conjunto de pruebas automotrices

Google proporciona una prueba de conjunto de pruebas automotrices (ATS), que garantiza que todos los paquetes de asistencia al conductor en un dispositivo hayan sido incluidos en la lista de permitidos de Google. La prueba se configura de forma remota. No es necesario esperar hasta la próxima versión de ATS para agregar un nuevo paquete. Puede obtener más información en Pruebas automotrices completas en una caja.