نقطة اتصال 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: يوفّر هذا القسم معلومات عن "نقطة الوصول النائية" الحالية (صالحة مرّة واحدة فقط). تبدأ)، بما في ذلك معلومات النطاق والتردد.
    • SoftApCallback#onConnectedClientsChanged: توفر قائمة بالعملاء المرتبطين. لكل عميل، يمكنك الحصول على عنوان MAC. للحصول على معلومات عنوان IP، استخدم معاودة الاتصال "TetheringEventCallback#onClientsChanged"
    • SoftApCallback#onStateChanged: يقدّم هذا القسم آخر الأخبار عن حالة Soft AP عند تفعيله. غير مفعّل.
    • SoftApCallback#onBlockedClientConnecting: يؤدي هذا الخيار إلى توفير أحد المعلومات التالية حول معلومات العميل المحظور. أسباب الحظر: وصل الجهاز إلى الحد الأقصى التي يمكنها دعمها أو غير مصرَّح له صراحةً الاتصال.

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

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

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

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

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

أحد المتطلبات المعتادة لمشغِّل شبكة الجوّال هو تزويد المستخدم بعناصر تحكُّم في الأجهزة المسموح لها بالربط بـ Soft 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