Mantieni gli hotspot tra una sessione di guida e l'altra

In questa pagina viene descritto come configurare gli utenti in modo che mantengano gli hotspot tra di guida simili a quelle di guida Wi-Fi di 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 attivo il tethering, usa ENABLE_PERSISTENT_TETHERING tramite API Settings, che può essere utilizzato anche per eseguire query.

Autorizzazioni

L'utilizzo dell'API CarWifiManager è limitato. Questa nuova autorizzazione è stata creata per con protezione dell'accesso.

public boolean canControlPersistApSettings() { ... }

I livelli di protezione di questa autorizzazione sono:

Nuova autorizzazione Autorizzazione Livello di protezione
READ_PERSIST_TETHERING_SETTINGS Firma | Con privilegi

Il comportamento permanente è non supportato per impostazione predefinita. Un overlay di risorse (config_enablePersistTetheringCapabilities) è configurato in modo da bloccare il possibilità di persistere il tethering. Per mantenere intenzionalmente il tethering, imposta il metodo su true per attivare la funzionalità in aggiunta alle preferenze utente perché altre app di sistema con l'autorizzazione WRITE_SECURE_SETTINGS possono controllano anche questa impostazione.

La seguente API determina se il comportamento è abilitato. Chiama questa API prima del giorno modifichi 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() { ... }
}