Questa pagina descrive come configurare gli utenti in modo che mantengano gli hotspot tra le sessioni di guida, in modo simile all'esperienza di guida Wi-Fi in AAOS.
public class CarSettings {
...
@SystemApi
public static final class Global {
...
/**
* Enables persistent tethering when set to {@code "true"}.
*
* <p>When enabled, tethering is started when the car is started given
* that the hotspot was enabled at shutdown and all tethering sessions
* will remain on even if no devices are connected to it.
*
* <p>When disabled, hotspot will turn off automatically if no devices
* are connected and will no longer persist through drives.
*
* @hide
*/
@SystemApi
public static final String ENABLE_PERSISTENT_TETHERING =
"android.car.ENABLE_PERSISTENT_TETHERING";
}
}
Per mantenere il tethering, utilizza ENABLE_PERSISTENT_TETHERING
tramite l'API Settings, che può essere utilizzata anche per eseguire query.
Autorizzazioni
L'utilizzo dell'API CarWifiManager è limitato. Questa nuova autorizzazione viene creata per proteggere l'accesso.
public boolean canControlPersistApSettings() { ... }
I livelli di protezione per questa autorizzazione sono:
Nuova autorizzazione | Autorizzazione | Livello di protezione |
---|---|---|
Sì | READ_PERSIST_TETHERING_SETTINGS |
Firma | Con accesso privilegiato |
Il comportamento di persistenza predefinito è non supportato. Un overlay della risorsa
(config_enablePersistTetheringCapabilities
) è configurato per bloccare la
possibilità di mantenere il tethering. Per mantenere intenzionalmente il tethering, imposta il valore su true
per attivare la funzionalità oltre all'attivazione delle preferenze dell'utente, poiché anche altre app di sistema con l'autorizzazione WRITE_SECURE_SETTINGS
possono controllare questa impostazione.
La seguente API determina se il comportamento è abilitato. Chiama questa API prima di modificare ENABLE_PERSISTENT_TETHERING
.
/**
* CarWifiManager provides API to allow for applications to perform Wi-Fi specific
* operations.
*
* @hide
*/
@SystemApi
public final class CarWifiManager extends CarManagerBase {
/**
* Returns {@code true} if the persist tethering settings are able to be
* changed.
*
* @hide
*/
@SystemApi
@RequiresPermission(Car.PERMISSION_READ_PERSIST_TETHERING_SETTINGS)
public boolean canControlPersistApSettings() { ... }
}