API di bypass della posizione automobilistica

Questa funzione consente di controllare separatamente l'accesso alla posizione delle app di assistenza alla guida incluse nella lista consentita e in bundle con Android tramite l'interruttore "Utilizza posizione per l'assistenza alla guida". Ciò consente a queste app di accedere alla posizione anche quando l'opzione "Usa posizione" è disattivata.

  • Android 12 non fornisce un'API pubblica per questa funzionalità. Le app di assistenza alla guida dovrebbero richiedere gli aggiornamenti della posizione come al solito.
  • Android 13 e versioni successive devono effettuare una richiesta di posizione per utilizzare LocationManager.requestLocationUpdates() e passare un oggetto LocationRequest configurato con LocationRequest.setAdasGnssBypass(true) .

Utilizza l'API di bypass della posizione di assistenza al conducente

Le sezioni seguenti descrivono come utilizzare l'API di bypass della posizione di assistenza al conducente. Per ulteriori informazioni sulla politica di utilizzo, consulta Politica della lista consentita per l'esclusione della posizione .

Controllare lo stato dell'interruttore di assistenza alla guida

In Android 13 e versioni successive, puoi controllare lo stato del cambio dell'assistenza alla guida prima di richiedere aggiornamenti sulla posizione.

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

Esegui i comandi Android Debug Bridge (ADB).

Per lo sviluppo e il test, puoi controllare o modificare rapidamente lo stato dell'attivazione/disattivazione dell'assistenza alla guida senza utilizzare le Impostazioni di posizione.

  1. Per utilizzare i comandi ADB per verificare o modificare lo stato:
    // 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
    

Imposta l'autorizzazione

Consulta quanto segue per le versioni Android specifiche della versione:

  1. In Android 12, le app di assistenza alla guida devono disporre dell'autorizzazione WRITE_SECURE_SETTINGS .
  2. In Android 13 e versioni successive è richiesta l'autorizzazione LOCATION_BYPASS .

Aggiungi un'app alla lista consentita sul tuo dispositivo

Nella directory etc/sysconfig :

  1. Aggiungi il nome del pacchetto dell'app in un file XML di configurazione del sistema:
  2. <!-- In a xml file under etc/sysconfig–>
    <config>
    …
    <allow-adas-location-settings package="PACKAGE-NAME" />
    …
    </config>
    

Per assicurarti che il tuo pacchetto venga visualizzato nell'interfaccia utente delle impostazioni di posizione, aggiungi il nome del pacchetto a config_locationDriverAssistancePackageNames .

Aggiungi l'URL dell'app con l'informativa sulla privacy ad AndroidManifest.xml . Il nome dei metadati dovrebbe essere privacy_policy .

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

Rimuovere l'opzione "Utilizza posizione per l'interruttore di assistenza alla guida"

Se non disponi di un'app di assistenza alla guida basata sulla posizione che richiede la posizione da Android, puoi commentare il blocco di codice per rimuovere l'interruttore per le Impostazioni di posizione.

  1. Apri packages/apps/Car/Settings/res/xml/location_settings_fragment.xml e quindi commenta il seguente codice.
    <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. Dopo aver rimosso l'opzione, imposta config_defaultAdasGnssLocationEnabled su false .

Esegui la suite di test automobilistici

Google fornisce un test Automotive Test Suite (ATS), che garantisce che tutti i pacchetti di assistenza alla guida su un dispositivo siano stati inseriti nella lista consentita da Google. Il test è configurato da remoto. Non è necessario attendere fino al prossimo rilascio di ATS per aggiungere un nuovo pacchetto. Puoi saperne di più su Test automobilistici completi in una scatola.