Utrzymywanie hotspotów między sesjami jazdy

Na tej stronie opisujemy, jak skonfigurować hotspoty dla użytkowników, aby mogli korzystać z nich podczas jazdy w różnych sesjach, podobnie jak w przypadku Wi-Fi w 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";
  }
}

Aby ustawić tethering na stałe, użyj ENABLE_PERSISTENT_TETHERING w interfejsie Settings API, który może też służyć do wysyłania zapytań.

Uprawnienia

Korzystanie z interfejsu CarWifiManager API jest ograniczone. To nowe uprawnienie zostało utworzone w celu ochrony dostępu.

public boolean canControlPersistApSettings() { ... }

Poziomy ochrony dla tego uprawnienia:

Nowe uprawnienie Uprawnienia Poziom ochrony
Tak READ_PERSIST_TETHERING_SETTINGS Podpis | Dostęp do poufnych danych

Domyślne zachowanie to nieobsługiwane. Nakładka zasobu (config_enablePersistTetheringCapabilities) jest skonfigurowana tak, aby blokować możliwość trwałego połączenia z internetem. Aby umożliwić stałe korzystanie z tetheringu, ustaw wartość na true, aby włączyć tę funkcję niezależnie od preferencji użytkownika, ponieważ inne aplikacje systemowe z uprawnieniem WRITE_SECURE_SETTINGS mogą również kontrolować to ustawienie.

Ten interfejs API określa, czy zachowanie jest włączone. Wywołaj ten interfejs API, zanim zmienisz 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() { ... }
}