نقطة اتصال 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.11 بي

تحدد قدرات الجهاز مدى توفر عناصر التحكم هذه. يقدم 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. هناك عدة آليات للقيام بذلك:

  • حدد الحد الأقصى لعدد الأجهزة التي يمكن ربطها بـ 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 Connectivity Test Suite أو ACTS) واختبارات Compatibility Test Suite (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