يتيح نظام التشغيل Android استخدام نقطة اتصال Wi-Fi (نقطة اتصال البرامج) بما في ذلك ميزة "ربط الجهاز بالشبكة" من خلال نقطة اتصال Wi-Fi ونقاط اتصال Wi-Fi المحلية فقط.
تتيح ميزة نقطة الوصول اللاسلكية (AP) القابلة للبرمجة ضبط ما يلي:
- معرّف SSID ومعرّف مجموعة الخدمات الأساسية (BSSID)
- نوع الأمان (بما في ذلك WPA3)
- معرّف SSID المخفي
- النطاق التشغيلي والقناة (بما في ذلك ACS)
- الحد الأقصى لعدد العملاء المسموح بهم
- قيمة مهلة الإيقاف التلقائي
- القائمة المسموح بها وقائمة الحظر للسماح للمستخدم بالتحكّم في الأجهزة المرتبطة
- مستوى اختيار عنوان MAC بشكل عشوائي لمعرّف مجموعة الخدمات الأساسي (BSSID) لنقطة الوصول
- 802.11ax و802.11be
وتحدِّد إمكانات الجهاز مدى توفّر عناصر التحكّم هذه. يقدّم نظام التشغيل Android 11 واجهات برمجة تطبيقات للحصول على هذه الإمكانات. يمكن لصنّاع الأجهزة أيضًا تحديد إمكانات الجهاز الأساسية باستخدام التراكبات.
يُرجى العِلم أنّ بعض واجهات برمجة التطبيقات هي واجهات برمجة تطبيقات للنظام ويتم حظرها من خلال الأذونات بحيث لا يمكن إلا لتطبيق "الإعدادات" للنظام الوصول إليها.
تطوير تطبيقات باستخدام واجهات برمجة التطبيقات الخاصة بنقاط الاتصال
يقدّم تطبيق AOSP Settings تنفيذًا تلقائيًا لنقطة اتصال 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/البرامج الثابتة لنقطة الاتصال: إما الإصدار 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
: يحدد هذا الخيار ما إذا كان يجب أن تكون عبارة مرور نقطة الاتصال اللاسلكية القابلة للبرمجة قابلة للترميز بترميز 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