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

يتيح Android استخدام نقطة اتصال Wi-Fi (Soft AP)، بما في ذلك التوصيل من خلال نقطة اتصال Wi-Fi ونقاط اتصال Wi-Fi المحلية فقط.

تسمح ميزة soft AP بضبط ما يلي:

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

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

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

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

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

لإتاحة التوصيل من خلال نقطة اتصال أو نقطة اتصال محلية فقط، يجب أن يؤدي التطبيق الوظائف التالية:

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

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

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

إذا كانت هناك نقطة اتصال متصلة:

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

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

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

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

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

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

    • يؤدي الضبط التلقائي لـ Soft AP إلى السماح لجميع الأجهزة بالربط بـ 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: ما إذا كان يلزم أن تكون عبارة مرور soft AP قابلة للترميز باستخدام ASCII أم لا.
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported: ما إذا كان سيتم ترقية ضبط إعدادات النطاق تلقائيًا إلى نطاقات مزدوجة أثناء استعادة إعداد السحابة الإلكترونية عند توفّر جهاز جديد.
  • (متاح اعتبارًا من 13) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled: ما إذا كان إطار العمل يلحق نطاقات أقل تلقائيًا بإعداد النطاق لتجنُّب مناولة العملية نفسها.
  • config_wifiSoftApDynamicCountryCodeUpdateSupported: ما إذا كان تحديث رمز البلد الديناميكي في وضع AP متوافقًا مع الجهاز
  • القنوات المتاحة: 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