運転セッション間のアクセス ポイントの維持

このページでは、AAOS の Wi-Fi 運転エクスペリエンスと同様に、運転セッション間でアクセス ポイントが維持されるようにユーザーをセットアップする方法について説明します。

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";
  }
}

テザリングを永続化するには、Settings API を通じて ENABLE_PERSISTENT_TETHERING を使用します。これはクエリにも使用できます。

権限

CarWifiManager API の使用は制限されています。この新しい権限はアクセスを保護するために作成されたものです。

public boolean canControlPersistApSettings() { ... }

この権限の保護レベルは次のとおりです。

新しい権限 権限 保護レベル
はい READ_PERSIST_TETHERING_SETTINGS 署名 | 特権

永続的な動作はデフォルトではサポートされません。リソース オーバーレイ(config_enablePersistTetheringCapabilities)は、テザリングを永続化する機能をブロックするように構成されています。テザリングを意図的に永続化するには、ユーザー設定のオプトインに加えて、値を true に設定して機能を有効化します。これは、WRITE_SECURE_SETTINGS 権限を持つ他のシステムアプリもこの設定を制御できるためです。

次の API は、動作が有効化されているかどうかを判断します。ENABLE_PERSISTENT_TETHERING を変更する前に、この API を呼び出してください。

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