Hotspots zwischen Fahrten beibehalten

Auf dieser Seite wird beschrieben, wie Sie Nutzer so einrichten können, dass sie Hotspots zwischen den Fahrten beibehalten können, ähnlich wie bei der WLAN-Fahrt 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";
  }
}

Wenn Sie Tethering beibehalten möchten, verwenden Sie ENABLE_PERSISTENT_TETHERING über die Settings API, die auch für Abfragen verwendet werden kann.

Berechtigungen

Die Verwendung der CarWifiManager API ist eingeschränkt. Diese neue Berechtigung wurde erstellt, um den Zugriff zu schützen.

public boolean canControlPersistApSettings() { ... }

Die Schutzebenen für diese Berechtigung sind:

Neue Berechtigung Berechtigung Schutzniveau
Ja READ_PERSIST_TETHERING_SETTINGS Signatur | Privileged

Das Standardverhalten für „persist“ ist nicht unterstützt. Ein Ressourcen-Overlay (config_enablePersistTetheringCapabilities) ist so konfiguriert, dass das Speichern von Tethering-Einstellungen verhindert wird. Wenn Sie das Tethering absichtlich beibehalten möchten, legen Sie den Wert auf true fest, um die Funktion zusätzlich zur Einwilligung des Nutzers zu aktivieren, da auch andere System-Apps mit der Berechtigung WRITE_SECURE_SETTINGS diese Einstellung steuern können.

Mit der folgenden API wird ermittelt, ob das Verhalten aktiviert ist. Rufen Sie diese API auf, bevor Sie ENABLE_PERSISTENT_TETHERING ändern.

/**
 * 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() { ... }
}