API de contournement de localisation automobile,API de contournement de localisation automobile

Cette fonctionnalité permet de contrôler séparément l'accès à la localisation des applications d'aide à la conduite répertoriées sur liste blanche et fournies avec Android par le commutateur « Utiliser la localisation pour l'assistance à la conduite ». Cela permet à ces applications d'accéder à la localisation même lorsque le commutateur « Utiliser la localisation » est désactivé.

  • Android 12 ne fournit pas d'API publique pour cette fonctionnalité. Les applications d'aide à la conduite devraient demander des mises à jour de localisation comme d'habitude.
  • Android 13 et versions ultérieures doivent effectuer 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 de l'assistance au conducteur

Les sections suivantes décrivent comment utiliser l'API de contournement de la localisation de l'assistance au conducteur. Pour en savoir plus sur la politique d'utilisation, consultez Politique de liste blanche de contournement d'emplacement .

Vérifier l'état du commutateur d'assistance à la conduite

Sous Android 13 et versions ultérieures, vous pouvez vérifier l’état du commutateur d’assistance à la conduite avant de demander des mises à jour de localisation.

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

Exécuter les commandes Android Debug Bridge (ADB)

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

  1. Pour utiliser les commandes ADB pour vérifier ou 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 l'autorisation

Consultez les informations suivantes pour connaître les versions Android spécifiques :

  1. Sous Android 12, les applications d'aide à la conduite doivent disposer de l'autorisation WRITE_SECURE_SETTINGS .
  2. Sous Android 13 et supérieur, l’autorisation LOCATION_BYPASS est requise.

Ajouter une application à la liste verte 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 d'emplacement, ajoutez le nom de votre package à config_locationDriverAssistancePackageNames .

Ajoutez l’URL de divulgation de la politique 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 l'option "Utiliser l'emplacement pour le commutateur d'assistance à la conduite"

Si vous ne disposez pas d'une application d'aide à la conduite basée sur la localisation qui demande la localisation à Android, vous pouvez commenter le bloc de code pour supprimer le commutateur pour les paramètres de localisation.

  1. Ouvrez packages/apps/Car/Settings/res/xml/location_settings_fragment.xml , puis commentez 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écutez la suite de tests Automotive

Google propose un test Automotive Test Suite (ATS), qui garantit que tous les packages d'assistance à la conduite sur un appareil ont été ajoutés à la liste verte de Google. Le test est configuré à distance. Vous n'avez pas besoin d'attendre la prochaine version d'ATS pour ajouter un nouveau package. Vous pouvez en savoir plus sur Tests automobiles complets dans une boîte.