نقطة اتصال Wi-Fi (Soft AP)

يوفر 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 واجهات برمجة التطبيقات للحصول على هذه الإمكانات. يمكن لمصنعي الأجهزة أيضًا تحديد إمكانيات الجهاز الأساسية باستخدام التراكبات.

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

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

يتم توفير التنفيذ الافتراضي لنقطة اتصال Wi-Fi المربوطة من خلال تطبيق إعدادات AOSP، إلا أنه لا يستخدم جميع واجهات برمجة التطبيقات لتكوين 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. قم بتكوين تكوين AP الناعم للربط عن طريق استدعاء طريقة WifiManager#setSoftApConfiguration وتوفير مثيل SoftApConfiguration . قم بإنشاء SoftApConfiguration باستخدام فئة SoftApConfiguration.Builder .
  2. ابدأ عملية الربط عن طريق استدعاء أسلوب الربط في TetheringManager#startTethering .

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

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

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

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

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

    • يسمح التكوين الافتراضي لـ Soft AP لجميع الأجهزة بالارتباط بـ soft AP باستثناء الأجهزة التي تمت إضافة عناوين MAC الخاصة بها إلى SoftApConfiguration.Builder#setBlockedClientList .
    • إذا تم تكوين Soft AP باستخدام 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 : ما إذا كانت عبارة مرور 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 مجموعة من اختبارات الوحدات، واختبارات التكامل (مجموعة اختبار اتصال Android، أو ACTS)، واختبارات مجموعة اختبار التوافق (CTS) للتحقق من صحة ميزة نقطة الاتصال. يمكن أيضًا اختبار ميزة نقطة الاتصال باستخدام مجموعة اختبار البائع (VTS).

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

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

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

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

    atest packages/modules/Wifi/framework/tests/
    

اختبارات التكامل (ACTS)

تقوم مجموعة اختبار نقطة الاتصال ACTS ، الموجودة في tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py ، بتنفيذ اختبارات وظيفية لميزة نقطة الاتصال.

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

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

لتشغيل اختبارات CTS، قم بتشغيل:

atest android.net.wifi.cts.WifiManagerTest

مجموعة اختبار البائع (VTS)

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

atest VtsHalWifiHostapdV1_2Target

إذا تم تنفيذ واجهة AIDL، قم بتشغيل:

atest VtsHalHostapdTargetTest