يتيح نظام التشغيل Android إمكانية استخدام نقطة اتصال Wi-Fi (نقطة وصول برمجية)، بما في ذلك إعداد التوصيل من خلال نقطة اتصال 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، استخدِم معاودة الاتصالTetheringEventCallback#onClientsChanged
. SoftApCallback#onStateChanged
: تقدّم هذه السمة معلومات عن حالة نقطة الوصول البرمجية (Soft AP) أثناء تفعيلها وإيقافها.-
SoftApCallback#onBlockedClientConnecting
: تعرض هذه السمة معلومات العميل المحظور مع أحد الأسباب التالية للحظر: إما أنّ الجهاز قد وصل إلى الحد الأقصى لعدد العملاء الذين يمكنه دعمهم، أو أنّ العميل غير مصرّح له صراحةً بالاتصال. -
SoftApCallback#onClientsDisconnected
: تعرض هذه السمة قائمة بالعملاء الذين تم قطع اتصالهم. بالنسبة إلى كل عميل، يمكنك معرفة سبب قطع الاتصال.
بالنسبة إلى نقطة اتصال مرتبطة:
- اضبط إعدادات نقطة الوصول البرمجية لتفعيل الربط من خلال استدعاء طريقة
WifiManager#setSoftApConfiguration
وتوفير مثيلSoftApConfiguration
. أنشئSoftApConfiguration
باستخدام فئةSoftApConfiguration.Builder
. - ابدأ الربط عن طريق استدعاء طريقة الربط في
TetheringManager#startTethering
.
لنقطة اتصال محلية فقط:
- ابدأ نقطة اتصال محلية فقط باستخدام إعدادات محدّدة لنقطة الوصول البرمجية من خلال استدعاء الطريقة
WifiManager#startLocalOnlyHotspot
.
تنفيذ قوائم السماح والحظر
من المتطلبات النموذجية التي تفرضها شركات الاتصالات توفير عناصر تحكّم للمستخدم في الأجهزة المسموح لها بالاقتران بنقطة الوصول البرمجية. وهناك عدة آليات لتنفيذ ذلك:
- يمكنك تحديد الحد الأقصى لعدد الأجهزة التي يمكن ربطها بنقطة الوصول البرمجية باستخدام
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
أو الإصدارIHostapd.aidl
من 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