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

Cette page explique comment configurer les utilisateurs pour qu'ils conservent des points d'accès entre les sessions de conduite, comme dans l'expérience de conduite Wi-Fi d'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 conserver le partage de connexion, utilisez ENABLE_PERSISTENT_TETHERING via l'API Settings, qui peut également être utilisée pour effectuer des 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 de 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 bloquer la possibilité de conserver le partage de connexion. Pour conserver intentionnellement le partage de connexion, définissez la valeur sur true afin d'activer la fonctionnalité en plus de l'activation des préférences de l'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() { ... }
}