يتيح نظام التشغيل Android استخدام نقطة اتصال Wi-Fi (Soft AP) بما في ذلك ميزة "ربط الجهاز بالشبكة" من خلال نقطة اتصال Wi-Fi ونقاط اتصال Wi-Fi المحلية فقط.
تتيح ميزة نقطة الاتصال اللاسلكية الافتراضية ضبط ما يلي:
- SSID ومعرّف مجموعة الخدمات الأساسية (BSSID)
- نوع الأمان (بما في ذلك WPA3)
- SSID مخفي
- نطاق التشغيل والقناة (بما في ذلك خادم ACS)
- الحد الأقصى لعدد العملاء المسموح بهم
- قيمة مهلة الإيقاف التلقائي
- القائمة المسموح بها والقائمة المحظورة للسماح للمستخدم بالتحكّم في الأجهزة المرتبطة
- مستوى اختيار عنوان MAC بشكل عشوائي لمعرّف مجموعة الخدمات الأساسي (BSSID) لنقطة الوصول
- 802.11ax و802.11be
تحدِّد إمكانات الجهاز مدى توفُّر عناصر التحكّم هذه. يقدّم نظام التشغيل Android 11 واجهات برمجة تطبيقات للحصول على هذه الإمكانات. يمكن لصنّاع الأجهزة أيضًا تحديد إمكانات الجهاز الأساسية باستخدام التراكبات.
يُرجى العِلم أنّ بعض واجهات برمجة التطبيقات هي واجهات برمجة تطبيقات للنظام ويتم حظرها من خلال الأذونات بحيث لا يمكن إلا لتطبيق "الإعدادات" للنظام الوصول إليها.
تطوير تطبيقات باستخدام واجهات برمجة تطبيقات نقاط الاتصال
يوفّر تطبيق "إعدادات AOSP" التنفيذ التلقائي لنقطة اتصال Wi-Fi المتصلة، ومع ذلك، لا يطبّق هذا التطبيق جميع واجهات برمجة التطبيقات لإعداد Soft AP.
لتفعيل ميزة "ربط الجهاز بالشبكة" من خلال نقطة اتصال أو نقطة اتصال للأجهزة المحلية فقط، يجب أن يؤدي التطبيق الوظائف التالية:
سجِّل طلب اتصال للاطّلاع على إمكانات الجهاز باستخدام
WifiManager#registerSoftApCallback
لنقطة اتصال متصلة أوWifiManager#registerLocalOnlyHotspotSoftApCallback
لنقطة اتصال محلية فقط.يوفّر ردّ الاتصال
SoftApCallback
الطرق التالية:SoftApCallback#onCapabilityChanged
: تقدّم معلومات حول إمكانات الجهاز، بما في ذلك الحد الأقصى لعدد البرامج المتوافقة وما إذا كانت متوافقة مع معايير SAE أو ACS.-
SoftApCallback#onInfoChanged
: يقدّم معلومات عن نقطة اتصال البرامج (صالحة فقط بعد بدؤها)، بما في ذلك معلومات النطاق ومعدّل التكرار. SoftApCallback#onConnectedClientsChanged
: يعرض قائمة بالعملاء المتصلين. بالنسبة إلى كل عميل، يمكنك الحصول على عنوان MAC. للحصول على معلومات عنوان IP، استخدِم ميزة callback (الرجوع) فيTetheringEventCallback#onClientsChanged
.SoftApCallback#onStateChanged
: يعرض آخر المعلومات حول حالة نقطة الاتصال اللاسلكية الافتراضية عند تفعيلها أو إيقافها.-
SoftApCallback#onBlockedClientConnecting
: يعرض معلومات العميل المحظور مع أحد الأسباب التالية للحظر: وصل الجهاز إلى الحد الأقصى لعدد العميل ين الذين يمكنه التعامل معهم أو لم يتم تفويض العميل صراحةً بالاتصال.
بالنسبة إلى نقطة اتصال متصلة:
- يمكنك ضبط إعدادات نقطة اتصال البرامج لربط الأجهزة من خلال استدعاء الأسلوب
WifiManager#setSoftApConfiguration
وتوفير مثيلSoftApConfiguration
. أنشئSoftApConfiguration
باستخدام فئةSoftApConfiguration.Builder
. - ابدأ عملية ربط الجهاز بالاتصال بطريقة الربط في
TetheringManager#startTethering
.
بالنسبة إلى نقطة الاتصال المحلية فقط:
- ابدأ نقطة الاتصال المحلية فقط باستخدام إعدادات نقطة اتصال افتراضية معيّنة من خلال
استدعاء الأسلوب
WifiManager#startLocalOnlyHotspot
.
تنفيذ قوائم المسموح بها والمحظورة
من متطلبات مشغّلي الشبكات عادةً تزويد المستخدم بعناصر تحكّم في الأجهزة المسموح لها بالربط بنقطة اتصال Soft AP. هناك عدة آليات لإجراء ذلك:
- يمكنك الحد من الحد الأقصى لعدد الأجهزة التي يمكنها الربط بنقطة اتصال البرامج
باستخدام
SoftApConfiguration.Builder#setMaxNumberOfClients
. احرص على تحديد عدد أقل من الحد الأقصى لعدد العملاء المتوافقين مع الجهاز. يمكنك الحصول على الحد الأقصى منSoftApCapability#getMaxSupportedClients
. توفير عنصر تحكّم ديناميكي باستخدام قوائم السماح والحظر:
- تسمح الإعدادات التلقائية لنقطة اتصال البرامج (Soft AP) لجميع الأجهزة بالارتباط بنقطة اتصال البرامج باستثناء الأجهزة التي تمت إضافة عناوين MAC الخاصة بها إلى
SoftApConfiguration.Builder#setBlockedClientList
. في حال ضبط نقطة اتصال البرامج باستخدام
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) لجميع الأجهزة بالارتباط بنقطة اتصال البرامج باستثناء الأجهزة التي تمت إضافة عناوين MAC الخاصة بها إلى
التنفيذ
لكي تتيح الشركات المصنّعة للأجهزة إمكانية ربط الأجهزة عبر نقطة اتصال أو نقطة اتصال محلية فقط، يجب أن توفّر هذه الشركات إمكانية استخدام تطبيق "الإعدادات" وإطار العمل وHAL/البرامج الثابتة:
تطبيق الإعدادات: يقدّم تطبيق "إعدادات AOSP" أساسًا لضبط نقطة اتصال شبكة الجوّال باستخدام معرّف SSID ومستندات اعتماد الأمان. ويمكن استخدام هذا الرمز كما هو أو تعديله لتوفير إمكانات إضافية كما هو موضّح في تطوير التطبيقات باستخدام واجهات برمجة التطبيقات لنقطة الاتصال.
إطار العمل: يتيح رمز إطار عمل AOSP جميع الوظائف описанة في مقالة تطوير التطبيقات باستخدام واجهات برمجة التطبيقات لنقاط الاتصال.
HAL/البرامج الثابتة لنقطة الاتصال: إما HIDL IHostapd.hal الإصدار 1.2 أو إصدار أحدث، أو 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
: يحدد هذا الخيار ما إذا كان يجب أن تكون عبارة مرور نقطة الاتصال اللاسلكية القابلة للبرمجة قابلة للترميز بترميز ASCII أم لا. config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported
: ما إذا كان سيتم ترقية إعدادات النطاق تلقائيًا إلى نطاقين مزدوجين أثناء استعادة الإعدادات من السحابة الإلكترونية عندما يكون الجهاز الجديد متوافقًا.- (متاح من الإصدار 13)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled
: يحدد هذا الخيار ما إذا كان إطار العمل يُلحق تلقائيًا النطاقات الأدنى بإعدادات النطاق لتجنُّب التعامل مع حالات التعايش. config_wifiSoftApDynamicCountryCodeUpdateSupported
: ما إذا كان الجهاز يتيح تعديل رمز البلد الديناميكي في وضع نقطة الوصول- قنوات الدعم:
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