Maintenir les points d'accès entre les sessions de conduite

Cette page explique comment configurer les utilisateurs pour qu'ils conservent les points d'accès entre les sessions de conduite, comme pour l'expérience de conduite Wi-Fi dans 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";
  }
}

Pour rendre le partage de connexion persistant, utilisez ENABLE_PERSISTENT_TETHERING via l'API Settings, qui peut également être utilisée pour les requêtes.

Autorisations

L'utilisation de l'API CarWifiManager est limitée. Cette nouvelle autorisation est créée pour protéger l'accès.

public boolean canControlPersistApSettings() { ... }

Les niveaux de protection pour cette autorisation sont les suivants :

Nouvelle autorisation Autorisation Niveau de protection
Oui READ_PERSIST_TETHERING_SETTINGS Signature | Privilégié

Le comportement de persistance est défini par défaut sur non compatible. Une superposition de ressources (config_enablePersistTetheringCapabilities) est configurée pour empêcher la persistance du partage de connexion. Pour que le partage de connexion persiste intentionnellement, définissez la valeur sur true afin d'activer la fonctionnalité en plus de l'activation de la préférence utilisateur, car d'autres applications système disposant de l'autorisation WRITE_SECURE_SETTINGS peuvent également contrôler ce paramètre.

L'API suivante détermine si le comportement est activé. Appelez cette API avant de modifier 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() { ... }
}