دعم نقطة اتصال Wi-Fi (Soft AP) للربط

يدعم Android الربط عبر نقطة اتصال Wi-Fi (Soft AP). بدءًا من Android 11 ، يدعم تكوين Soft AP المتاح لمصنعي الأجهزة المزيد من حالات استخدام الناقل والتخصيصات ، بما في ذلك تكوين ما يلي:

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

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

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

الأمثلة والمصدر

يتم توفير التنفيذ الافتراضي من خلال تطبيق إعدادات AOSP ، إلا أنه لا يستخدم جميع واجهات برمجة التطبيقات لتكوين Soft AP. يجب أن يؤدي تطبيق الاتصال هذه الوظائف الثلاث:

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

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

  3. ابدأ الربط عن طريق استدعاء طريقة الربط في TetheringManager#startTethering .

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

يتمثل أحد متطلبات شركة النقل النموذجية في تزويد المستخدم بعناصر تحكم في الأجهزة التي يُسمح لها بربطها بـ 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 ) .

التنفيذ

لدعم الربط من خلال نقطة اتصال Wi-Fi (Soft AP) ، يجب على الشركات المصنّعة للأجهزة توفير تطبيق الإعدادات وإطار العمل ودعم HAL / البرامج الثابتة:

  • تطبيق الإعدادات: يوفر تطبيق إعدادات AOSP أساسًا لتكوين نقطة اتصال ربط باستخدام SSID وبيانات اعتماد الأمان. يمكن استخدام هذا الرمز كما هو أو تعديله لتوفير إمكانيات إضافية كما هو موضح في الأمثلة والمصدر .

  • الإطار: يدعم كود إطار عمل AOSP جميع الوظائف الموضحة في الأمثلة والمصدر .

  • HAL / البرامج الثابتة للنقطة الفعالة: IHostapd.HAL الإصدار 1.2 أو أعلى.

التخصيص

لتخصيص التنفيذ ، يجب على الشركات المصنعة للأجهزة تكوين التراكبات التالية وتكوينات الناقل ، والتي تم توثيقها في 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 ) .
  • دعم القناة: config_wifiSoftap2gChannelList و config_wifiSoftap5gChannelList و config_wifiSoftap6gChannelList .
  • دعم الاستعادة الذي يحدد ما إذا كانت الإدخالات المقابلة config_wifiSoftapResetMaxClientSettingConfig إعادة تعيينها إلى الوضع الافتراضي عند استعادة تكوين نقطة الاتصال إلى جهاز جديد: config_wifiSoftapResetChannelConfig ، config_wifiSoftapResetHiddenConfig ، config_wifiSoftapResetUserControlConfig ، config_wifiSoftapResetAutoShutdownTimerConfig . لاحظ أنه يتم تعيينها على true افتراضيًا ، مما يعني أنه يتم إعادة تعيين القيم. هذا أمر بالغ الأهمية إذا كان الجهاز الجديد لا يدعم التكوين.
  • قدرات الأجهزة:

    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap6ghzSupported
    • 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)

لإجراء اختبارات VTS ، قم بتشغيل:

atest VtsHalWifiHostapdV1_2Target