API Automotive Location Bypass

Cette fonctionnalité permet de contrôler séparément l'accès à la position des applications d'aide à la conduite intégrées à Android et figurant sur la liste d'autorisation, à l'aide du bouton "Utiliser la position pour l'aide à la conduite". Cela permet à ces applications d'accéder à la position même lorsque l'option "Utiliser la position" est désactivée.

  • Android 12 ne fournit pas d'API publique pour cette fonctionnalité. Les applications d'aide à la conduite doivent demander des notifications de position comme d'habitude.
  • Android 13 et versions ultérieures doivent envoyer une demande de localisation pour utiliser LocationManager.requestLocationUpdates() et transmettre un objet LocationRequest configuré avec LocationRequest.setAdasGnssBypass(true).

Utiliser l'API de contournement de la localisation pour l'aide à la conduite

Les sections suivantes décrivent comment utiliser l'API de contournement de la localisation pour l'aide à la conduite. Pour en savoir plus sur les règles d'utilisation, consultez Règles de la liste d'autorisation de contournement de l'emplacement.

Vérifier l'état du bouton d'aide à la conduite

Sur Android 13 ou version ultérieure, vous pouvez vérifier l'état du bouton d'aide à la conduite avant de demander des notifications de position.

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

Exécuter des commandes Android Debug Bridge (ADB)

Pour le développement et les tests, vous pouvez rapidement vérifier ou modifier l'état du bouton d'aide à la conduite sans utiliser les paramètres de localisation.

  1. Pour utiliser des commandes ADB afin de vérifier ou de modifier l'état :
    // 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

Définir une autorisation

Consultez les pages suivantes pour en savoir plus sur les différentes versions d'Android :

  1. Sur Android 12, les applications d'aide à la conduite doivent disposer de l'autorisation WRITE_SECURE_SETTINGS.
  2. Sous Android 13 ou version ultérieure, l'autorisation LOCATION_BYPASS est requise.

Ajouter une application à la liste d'autorisation sur votre appareil

Dans le répertoire etc/sysconfig :

  1. Ajoutez le nom du package de l'application dans un fichier XML de configuration système :
  2. <!-- In a xml file under etc/sysconfig–>
    <config>
    …
    <allow-adas-location-settings package="PACKAGE-NAME" />
    …
    </config>

Pour vous assurer que votre package apparaît dans l'interface utilisateur des paramètres de localisation, ajoutez son nom à config_locationDriverAssistancePackageNames.

Ajoutez l'URL des règles de confidentialité de l'application à AndroidManifest.xml. Le nom des métadonnées doit être privacy_policy.

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

Supprimer le bouton "Utiliser la position pour l'aide à la conduite"

Si vous n'avez pas d'application d'aide à la conduite basée sur la localisation qui demande la localisation à Android, vous pouvez mettre en commentaire le bloc de code pour supprimer le bouton des paramètres de localisation.

  1. Ouvrez packages/apps/Car/Settings/res/xml/location_settings_fragment.xml, puis mettez en commentaire le code suivant.
    <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. Après avoir supprimé le commutateur, définissez config_defaultAdasGnssLocationEnabled sur false.

Exécuter l'Automotive Test Suite

Google fournit un test Automotive Test Suite (ATS) qui permet de s'assurer que tous les packages d'aide à la conduite d'un appareil ont été ajoutés à la liste d'autorisation de Google. Le test est configuré à distance. Vous n'avez pas besoin d'attendre la prochaine version d'ATS pour ajouter un nouveau package. Pour en savoir plus, consultez Complete Automotive Tests in a Box.