Controllo delle funzionalità del servizio auto

Per impostazione predefinita, la maggior parte dei servizi per auto sono obbligatori e sempre attivi. Tuttavia, puoi designare un sottoinsieme di servizi per auto come facoltativi perché alcune funzionalità potrebbero non essere supportate in tutte le auto.

Elenco delle funzionalità facoltative

Le funzionalità di controllo dell'auto facoltative che puoi attivare e disattivare sono elencate nella tabella seguente.

Funzionalità di controllo dell'auto Valore stringa
Servizio Car EVS car_evs_service
Servizio sperimentale di protezione delle chiavi dell'auto experimental_car_keyguard_service
Servizio di navigazione per auto car_navigation_service
Servizio di connessione per gli occupanti dell'auto car_occupant_connection_service
Servizio di accesso remoto all'auto car_remote_access_service
Servizio di dispositivo di apertura a distanza dell'auto car_remote_device_service
Servizio di telemetria dell'auto car_telemetry_service
Servizio di notifica per gli utenti di auto com.android.car.user.CarUserNoticeService
Servizio di assistenza a domicilio per il cluster cluster_home_service
Servizio diagnostico diagnostic
Occupant Awareness Service occupant_awareness
Servizio di monitoraggio dello spazio di archiviazione storage_monitoring
Servizio di mappe per il veicolo vehicle_map_service

Attivare e disattivare le funzionalità di controllo dell'auto

Puoi controllare il supporto delle funzionalità nelle tue build in due modi: con overlay delle risorse di runtime (RRO) o tramite l'Hardware Abstraction Layer (VHAL) del veicolo.

Utilizzare gli RRO

Utilizza la configurazione delle risorse denominata config_allowed_optional_car_features, che elenca tutte le funzionalità facoltative che puoi attivare. Al primo avvio di un'auto, vengono annotate le possibili funzionalità opzionali dell'auto, che vengono attivate se non sono incluse nella lista bloccata di VHAL. Per saperne di più sulle RRO, vedi Modificare il valore delle risorse di un'app in fase di runtime.

Utilizzare VHAL

Il livello di astrazione hardware del veicolo (VHAL) controlla le funzionalità fungendo da lista bloccata per disattivare funzionalità opzionali specifiche. La proprietà VHAL denominata DISABLED_OPTIONAL_FEATURES elenca le funzionalità facoltative nell'overlay da disattivare. Se questa proprietà non esiste, vengono attivate tutte le funzionalità facoltative delle RRO. Per scoprire di più su VHAL, consulta la panoramica di VHAL.

Utilizzare i comandi della shell di debug

Un terzo modo per controllare quali funzionalità opzionali attivare o disattivare è l'utilizzo di una coppia di comandi della shell, disponibili solo nelle build user-debug e fornite per l'uso da parte degli sviluppatori. La tabella in Elenco delle funzionalità facoltative contiene i valori da utilizzare al posto di <FEATURE_STRING_VALUE>.

Per attivare una funzionalità:

adb root; adb shell cmd car_service enable-feature <FEATURE_STRING_VALUE>; adb reboot

Per disattivare una funzionalità:

adb root; adb shell cmd car_service disable-feature <FEATURE_STRING_VALUE>; adb reboot

Determinare quali funzionalità sono attive

Quando esegui il debug dei problemi relativi a funzionalità specifiche, può essere utile sapere quali funzionalità sono attive e perché. Per eseguire il dump delle informazioni di feature-related, esegui:

adb shell dumpsys car_service --services CarFeatureController

Questo comando elenca i tipi di informazioni mostrati di seguito.

Valore Descrizione
mEnabledFeatures Funzionalità attualmente attive.
mDefaultEnabledFeaturesFromConfig Funzionalità facoltative elencate in config_allowed_optional_car_features.
mDisabledFeaturesFromVhal Funzionalità specificate da VHAL da disattivare nella proprietà VHAL, DISABLED_OPTIONAL_FEATURES.
mPendingEnabledFeatures Funzionalità da attivare al riavvio.
mPendingDisabledFeatures Funzionalità da disattivare dopo il riavvio.