الحفاظ على نقاط الاتصال بين جلسات القيادة

توضّح هذه الصفحة كيفية إعداد المستخدمين للحفاظ على نقاط الاتصال النشطة بين جلسات القيادة، على غرار تجربة القيادة باستخدام شبكة Wi-Fi في 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";
  }
}

لإبقاء الربط نشطًا، استخدِم ENABLE_PERSISTENT_TETHERING من خلال Settings API، التي يمكن استخدامها أيضًا لإجراء طلبات بحث.

الأذونات

يتم فرض قيود على استخدام واجهة برمجة التطبيقات CarWifiManager API. تم إنشاء هذا الإذن الجديد لحماية الوصول.

public boolean canControlPersistApSettings() { ... }

مستويات الحماية لهذا الإذن هي:

إذن جديد الإذن مستوى الحماية
نعم READ_PERSIST_TETHERING_SETTINGS التوقيع | معلومات خاصّة

يكون السلوك التلقائي للاحتفاظ بالبيانات غير متاح. تم ضبط تراكب موارد (config_enablePersistTetheringCapabilities) لمنع إمكانية إبقاء الربط بشبكة الجوّال مفعّلاً. لإبقاء ميزة الربط بالإنترنت مفعّلة عن قصد، اضبط القيمة على true لتفعيل الميزة بالإضافة إلى خيار الموافقة الذي يحدّده المستخدم، لأنّ تطبيقات النظام الأخرى التي لديها إذن WRITE_SECURE_SETTINGS يمكنها أيضًا التحكّم في هذا الإعداد.

تحدّد واجهة برمجة التطبيقات التالية ما إذا كان السلوك مفعّلاً. يجب استدعاء واجهة برمجة التطبيقات هذه قبل تغيير 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() { ... }
}