نقطة اتصال Wi-Fi (نقطة اتصال ضوئية)

يتيح نظام التشغيل Android استخدام نقطة اتصال Wi-Fi (Soft AP) بما في ذلك ميزة "ربط الجهاز بالشبكة" من خلال نقطة اتصال Wi-Fi ونقاط اتصال Wi-Fi المحلية فقط.

تتيح ميزة نقطة الاتصال اللاسلكية الافتراضية ضبط ما يلي:

  • SSID ومعرّف مجموعة الخدمات الأساسية (BSSID)
  • نوع الأمان (بما في ذلك WPA3)
  • SSID مخفي
  • نطاق التشغيل والقناة (بما في ذلك خادم ACS)
  • الحد الأقصى لعدد العملاء المسموح بهم
  • قيمة مهلة الإيقاف التلقائي
  • القائمة المسموح بها والقائمة المحظورة للسماح للمستخدم بالتحكّم في الأجهزة المرتبطة
  • مستوى اختيار عنوان MAC بشكل عشوائي لمعرّف مجموعة الخدمات الأساسي (BSSID) لنقطة الوصول
  • ‫802.11ax و802.11be

تحدِّد إمكانات الجهاز مدى توفُّر عناصر التحكّم هذه. يقدّم نظام التشغيل Android 11 واجهات برمجة تطبيقات للحصول على هذه الإمكانات. يمكن لصنّاع الأجهزة أيضًا تحديد إمكانات الجهاز الأساسية باستخدام التراكبات.

يُرجى العِلم أنّ بعض واجهات برمجة التطبيقات هي واجهات برمجة تطبيقات للنظام ويتم حظرها من خلال الأذونات بحيث لا يمكن إلا لتطبيق "الإعدادات" للنظام الوصول إليها.

تطوير تطبيقات باستخدام واجهات برمجة تطبيقات نقاط الاتصال

يوفّر تطبيق "إعدادات AOSP" التنفيذ التلقائي لنقطة اتصال Wi-Fi المتصلة، ومع ذلك، لا يطبّق هذا التطبيق جميع واجهات برمجة التطبيقات لإعداد Soft AP.

لتفعيل ميزة "ربط الجهاز بالشبكة" من خلال نقطة اتصال أو نقطة اتصال للأجهزة المحلية فقط، يجب أن يؤدي التطبيق الوظائف التالية:

  1. سجِّل طلب اتصال للاطّلاع على إمكانات الجهاز باستخدام WifiManager#registerSoftApCallback لنقطة اتصال متصلة أوWifiManager#registerLocalOnlyHotspotSoftApCallback لنقطة اتصال محلية فقط.

    يوفّر ردّ الاتصال SoftApCallback الطرق التالية:

    • SoftApCallback#onCapabilityChanged: تقدّم معلومات حول إمكانات الجهاز، بما في ذلك الحد الأقصى لعدد البرامج المتوافقة وما إذا كانت متوافقة مع معايير SAE أو ACS.
    • SoftApCallback#onInfoChanged: يقدّم معلومات عن نقطة اتصال البرامج (صالحة فقط بعد بدؤها)، بما في ذلك معلومات النطاق ومعدّل التكرار.
    • SoftApCallback#onConnectedClientsChanged: يعرض قائمة بالعملاء المتصلين. بالنسبة إلى كل عميل، يمكنك الحصول على عنوان MAC. للحصول على معلومات عنوان IP، استخدِم ميزة callback (الرجوع) في TetheringEventCallback#onClientsChanged.
    • SoftApCallback#onStateChanged: يعرض آخر المعلومات حول حالة نقطة الاتصال اللاسلكية الافتراضية عند تفعيلها أو إيقافها.
    • SoftApCallback#onBlockedClientConnecting: يعرض معلومات العميل المحظور مع أحد الأسباب التالية للحظر: وصل الجهاز إلى الحد الأقصى لعدد العميل ين الذين يمكنه التعامل معهم أو لم يتم تفويض العميل صراحةً بالاتصال.

بالنسبة إلى نقطة اتصال متصلة:

  1. يمكنك ضبط إعدادات نقطة اتصال البرامج لربط الأجهزة من خلال استدعاء الأسلوب WifiManager#setSoftApConfiguration وتوفير مثيل SoftApConfiguration. أنشئ SoftApConfiguration باستخدام فئة SoftApConfiguration.Builder.
  2. ابدأ عملية ربط الجهاز بالاتصال بطريقة الربط في TetheringManager#startTethering.

بالنسبة إلى نقطة الاتصال المحلية فقط:

  1. ابدأ نقطة الاتصال المحلية فقط باستخدام إعدادات نقطة اتصال افتراضية معيّنة من خلال استدعاء الأسلوب WifiManager#startLocalOnlyHotspot.

تنفيذ قوائم المسموح بها والمحظورة

من متطلبات مشغّلي الشبكات عادةً تزويد المستخدم بعناصر تحكّم في الأجهزة المسموح لها بالربط بنقطة اتصال Soft AP. هناك عدة آليات لإجراء ذلك:

  • يمكنك الحد من الحد الأقصى لعدد الأجهزة التي يمكنها الربط بنقطة اتصال البرامج باستخدام SoftApConfiguration.Builder#setMaxNumberOfClients. احرص على تحديد عدد أقل من الحد الأقصى لعدد العملاء المتوافقين مع الجهاز. يمكنك الحصول على الحد الأقصى من SoftApCapability#getMaxSupportedClients.
  • توفير عنصر تحكّم ديناميكي باستخدام قوائم السماح والحظر:

    • تسمح الإعدادات التلقائية لنقطة اتصال البرامج (Soft AP) لجميع الأجهزة بالارتباط بنقطة اتصال البرامج باستثناء الأجهزة التي تمت إضافة عناوين MAC الخاصة بها إلى SoftApConfiguration.Builder#setBlockedClientList.
    • في حال ضبط نقطة اتصال البرامج باستخدام SoftApConfiguration.Builder#setClientControlByUserEnabled(true)، يتم استخدام القائمة المسموح بها.

      • يتم حظر جميع الأجهزة التي تتضمّن عناوين MAC في SoftApConfiguration.Builder#setBlockedClientList من الربط.
      • يُسمح بربط جميع الأجهزة التي تتضمّن عناوين MAC في SoftApConfiguration.Builder#setAllowedClientList.
      • يتم حظر جميع الأجهزة الأخرى (أي الأجهزة التي لا تكون عناوين MAC الخاصة بها في قائمة السماح أو الحظر) من الربط، ولكن يتم استدعاء SoftApCallback#onBlockedClientConnecting، ما يسمح للتطبيق المُشغِّل (أي تطبيق "الإعدادات") بمحاولة اتخاذ إجراء، على سبيل المثال، طلب تأكيد من المستخدم ثم إضافة الجهاز إلى قائمة السماح أو الحظر استنادًا إلى سلوك المستخدم.

    يُرجى العِلم أنّه لا يمكن للأجهزة استخدام وظيفة قائمة المسموح بها إلا إذا كانت متوافقة مع الجهاز. يمكنك التحقّق من توافق الجهاز باستخدام SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT).

التنفيذ

لكي تتيح الشركات المصنّعة للأجهزة إمكانية ربط الأجهزة عبر نقطة اتصال أو نقطة اتصال محلية فقط، يجب أن توفّر هذه الشركات إمكانية استخدام تطبيق "الإعدادات" وإطار العمل وHAL/البرامج الثابتة:

التخصيص

لتخصيص عملية التنفيذ، على المصنّعين ضبط الإعدادات التالية للطبقات وشركات الجوّال، والتي تم توثيقها في packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml:

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds: الفاصل الزمني التلقائي لمهلة إيقاف التشغيل. صالحة فقط إذا تم تفعيل SoftApConfiguration#setAutoShutdownEnabled. يمكن إلغاء القيمة باستخدام SoftApConfiguration#setShutdownTimeoutMillis.
  • config_wifiHardwareSoftapMaxClientCount: الحدّ الأقصى المسموح به للأجهزة لتحديد عدد العملاء المتوافقين الحد الأقصى لعدد العملاء الذي يتيحه الجهاز هو الحد الأدنى من قيود الأجهزة ومشغّل شبكة الجوّال (يتم تحديده باستخدام CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT). يتم تقديم النتيجة النهائية للتطبيق باستخدام SoftApCapabilities#getMaxSupportedClients.
  • config_wifiSofapClientForceDisconnectSupported: ما إذا كان الجهاز لديه إمكانية إلغاء ربط العميل بشكلٍ قسري مطلوب لتفعيل قوائم السماح والحظر. يتم إرسالها إلى التطبيق المُتحكّم (تطبيق "الإعدادات") من خلال SoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT).
  • (متاح من الإصدار 13) config_wifiSoftapPassphraseAsciiEncodableCheck: يحدد هذا الخيار ما إذا كان يجب أن تكون عبارة مرور نقطة الاتصال اللاسلكية القابلة للبرمجة قابلة للترميز بترميز ASCII أم لا.
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported: ما إذا كان سيتم ترقية إعدادات النطاق تلقائيًا إلى نطاقين مزدوجين أثناء استعادة الإعدادات من السحابة الإلكترونية عندما يكون الجهاز الجديد متوافقًا.
  • (متاح من الإصدار 13) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled: يحدد هذا الخيار ما إذا كان إطار العمل يُلحق تلقائيًا النطاقات الأدنى بإعدادات النطاق لتجنُّب التعامل مع حالات التعايش.
  • config_wifiSoftApDynamicCountryCodeUpdateSupported: ما إذا كان الجهاز يتيح تعديل رمز البلد الديناميكي في وضع نقطة الوصول
  • قنوات الدعم: config_wifiSoftap2gChannelList config_wifiSoftap5gChannelList وconfig_wifiSoftap6gChannelList config_wifiSoftap60gChannelList
  • إتاحة الاستعادة لتحديد ما إذا كان سيتم إعادة ضبط الإدخالات المقابلة على الإعدادات التلقائية عند استعادة إعدادات نقطة الاتصال على جهاز جديد: config_wifiSoftapResetChannelConfig، config_wifiSoftapResetHiddenConfig، config_wifiSoftapResetUserControlConfig، config_wifiSoftapResetAutoShutdownTimerConfig، config_wifiSoftapResetMaxClientSettingConfig يُرجى العِلم أنّه يتم ضبط هذه القيم على true تلقائيًا، ما يعني أنّه تتم إعادة ضبط القيم. هذا الإجراء مهم إذا كان الجهاز الجديد لا يتيح الضبط.
  • إمكانيات الأجهزة:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (متاحة من 13 عامًا) config_wifiSoftapOweTransitionSupported
    • (متاحة من 13 عامًا) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (متاحة من 13 عامًا) config_wifiSoftapIeee80211beSupported
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

التحقُّق

يوفّر Android مجموعة من اختبارات الوحدات واختبارات مجموعة أدوات اختبار التوافق (CTS) للتحقّق من صحة ميزة نقطة الاتصال. يمكن أيضًا اختبار ميزة نقطة الاتصال باستخدام حزمة اختبار البائعين (VTS).

اختبارات الوحدة

تحقَّق من حزمة نقطة الاتصال باستخدام الاختبارات التالية.

  • اختبارات الخدمة:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • اختبارات الحساب الإداري:

    atest packages/modules/Wifi/framework/tests/
    

اختبارات مجموعة أدوات اختبار التوافق (CTS)

استخدِم اختبارات CTS للتحقّق من صحة ميزة نقطة الاتصال. يرصد CTS الحالات التي تكون فيها الميزة مفعّلة ويشمل تلقائيًا الاختبار ات المرتبطة بها.

لبدء اختبارات CTS، شغِّل:

atest android.net.wifi.cts.WifiManagerTest

حزمة اختبار المورّد (VTS)

إذا تم تنفيذ واجهة HIDL، شغِّل ما يلي:

atest VtsHalWifiHostapdV1_2Target

في حال تنفيذ واجهة AIDL، شغِّل:

atest VtsHalHostapdTargetTest