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 de conduite, similaire à 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 maintenir le partage de connexion, utilisez ENABLE_PERSISTENT_TETHERING via le l'API des paramètres, 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 et 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é

Par défaut, la persistance est définie sur non compatible. Une superposition de ressources (config_enablePersistTetheringCapabilities) est configuré pour bloquer Possibilité de maintenir le partage de connexion Pour activer intentionnellement le partage de connexion, définissez la valeur sur true pour activer la fonctionnalité au-dessus des préférences de l'utilisateur car d'autres applications système disposant de l'autorisation WRITE_SECURE_SETTINGS peuvent contrôler également ce paramètre.

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