يوفر 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.
لدعم التوصيل عبر نقطة اتصال أو نقطة اتصال محلية فقط، يجب أن يقوم التطبيق بالوظائف التالية:
قم بتسجيل رد اتصال للحصول على إمكانات الجهاز باستخدام
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
: يوفر معلومات العميل المحظور لأحد الأسباب التالية للحظر: وصل الجهاز إلى الحد الأقصى لعدد العملاء الذي يمكنه دعمه أو أن العميل غير مخول صراحةً بالاتصال.
-
بالنسبة لنقطة الاتصال المرتبطة:
- قم بتكوين تكوين AP الناعم للربط عن طريق استدعاء طريقة
WifiManager#setSoftApConfiguration
وتوفير مثيلSoftApConfiguration
. قم بإنشاءSoftApConfiguration
باستخدام فئةSoftApConfiguration.Builder
. - ابدأ عملية الربط عن طريق استدعاء أسلوب الربط في
TetheringManager#startTethering
.
بالنسبة لنقطة الاتصال المحلية فقط:
- ابدأ نقطة الاتصال المحلية فقط بتكوين 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
، مما يسمح لتطبيق التحكم (أي تطبيق الإعدادات) باتخاذ إجراء، على سبيل المثال، مطالبة المستخدم بالتأكيد ثم إضافة الجهاز إلى قائمة السماح أو إلى قائمة الحظر اعتمادًا على سلوك المستخدم.
- يتم حظر كافة الأجهزة التي توجد عناوين MAC الخاصة بها في
لاحظ أنه لا يمكن للأجهزة استخدام وظيفة قائمة السماح إلا إذا كانت مدعومة على الجهاز. يمكنك التحقق من دعم الجهاز باستخدام
SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT )
.- يسمح التكوين الافتراضي لـ Soft AP لجميع الأجهزة بالارتباط بـ soft AP باستثناء الأجهزة التي تمت إضافة عناوين MAC الخاصة بها إلى
تطبيق
لدعم التوصيل من خلال نقطة اتصال أو لدعم نقطة اتصال محلية فقط، يجب على الشركات المصنعة للأجهزة توفير تطبيق الإعدادات وإطار العمل ودعم HAL/البرامج الثابتة:
تطبيق الإعدادات: يوفر تطبيق إعدادات AOSP خطًا أساسيًا لتكوين نقطة اتصال الربط باستخدام SSID وبيانات اعتماد الأمان. يمكن استخدام هذا الرمز كما هو أو تعديله لتوفير إمكانات إضافية كما هو موضح في تطوير التطبيقات باستخدام واجهات برمجة تطبيقات نقطة الاتصال .
الإطار: يدعم رمز إطار عمل AOSP جميع الوظائف الموضحة في تطوير التطبيقات باستخدام واجهات برمجة تطبيقات نقطة الاتصال .
HAL/البرامج الثابتة لنقطة الاتصال: إما الإصدار 1.2 من HIDL IHostapd.hal أو أعلى، أو AIDL IHostapd.aidl .
التخصيص
لتخصيص التنفيذ، يجب على الشركات المصنعة للأجهزة تكوين التراكبات وتكوينات الناقل التالية، والتي تم توثيقها في 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