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

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