توضّح هذه الصفحة الخوارزميات والإجراءات المستخدَمة في نظام التشغيل Android 12 لاختيار شبكات Wi-Fi والتبديل بينها. يقيّم جهاز Android باستمرار جودة الشبكة المتصلة ويقيّم جودة الشبكات المتاحة.
مدة صلاحية الربط التلقائي
يوضّح هذا القسم كيف يقيّم جهاز Android ويتصل بشبكات Wi-Fi المتاحة.
يبحث الجهاز عن الشبكات المتاحة بإحدى الطرق التالية، حسب ما إذا كانت الشاشة قيد التشغيل أو الإيقاف.
- الشاشة مفعّلة (متصل): يقيّم نظام Android الفرعي للاتصال بانتظام ما إذا كان الاتصال الحالي جيدًا بما يكفي لتخطّي عملية البحث (كما هو محدّد في عمليات البحث أثناء تفعيل الشاشة). إذا لم يكن الاتصال جيدًا بما يكفي لتخطّي عملية البحث، سيؤدي نظام الاتصال الفرعي إلى بدء بحث لرصد الشبكات المتاحة. يمكن أن يتم تشغيل عمليات الفحص هذه أيضًا من خلال مكونات أخرى في النظام، مثل نظام تحديد الموقع الجغرافي أو أحد التطبيقات (بما في ذلك تطبيق "الإعدادات").
- الشاشة مفعّلة (تم قطع الاتصال): يصدر نظام Android الفرعي للاتصال عمليات بحث دورية وفقًا لجدول زمني للتراجع الأسي. تقيِّم الوحدة جميع نتائج البحث التي تم تلقّيها وتحاول اختيار أفضل شبكة للاتصال بها.
- إيقاف الشاشة (غير متصل): يبرمج مضيف وحدة المعالجة المركزية البرامج الثابتة باستخدام قائمة بالشبكات المفضَّلة من خلال عمليات فحص ميزة "تفريغ الشبكة المفضَّلة" (PNO) فور إيقاف الشاشة. وتفعّل البرامج الثابتة المضيف إذا عثرت على أي من الشبكات المفضَّلة. يفترض AOSP أنّ الجهاز يتيح استخدام ميزة "الشبكات الخاصة فقط".
يمكن استخدام طريقة
WifiManager#allowAutojoinGlobal(boolean)لإيقاف عمليات الربط التلقائي. هذه واجهة برمجة تطبيقات ذات امتيازات يمكن لمصنّعي الأجهزة استخدامها في ظروف محدودة (على سبيل المثال، جهاز غير متوافق مع الأجهزة الجوّالة، وجهاز تم إعداده مسبقًا).إذا كان الجهاز متصلاً بالشبكة وتم ضبط تراكب
config_wifi_framework_enable_associated_network_selectionعلىfalse، لن يتم إجراء عمليات بحث عن الاتصال، ولن تؤدي نتائج البحث إلى اختيار الشبكة. لا يؤثر هذا الإعداد عندما يكون الجهاز غير متصل، ما يعني أنّه سيظل يتم إجراء عمليات فحص الاتصال واختيار الشبكة.يتم تقييم نتائج الفحص.
إذا كان الجهاز متصلاً بشبكة Wi-Fi، يقيّم إطار العمل ما إذا كانت الشبكة الحالية جيدة بما يكفي لتخطّي اختيار الشبكة.
يتم تعريف الشبكة على أنّها جيدة بما يكفي لتخطّي اختيار الشبكة إذا تم استيفاء أي من المتطلبات التالية:
- لم يمضِ أقل من 10 ثوانٍ منذ آخر عملية اختيار للشبكة.
- اتّصل المستخدم مؤخرًا بالشبكة يدويًا (يمكن ضبط الفترة الزمنية المحدّدة "مؤخرًا" باستخدام التراكب
config_wifiSufficientDurationAfterUserSelectionMilliseconds). - أن يكون الجهاز متصلاً باتصال OSU.
استيفاء جميع المتطلبات التالية:
- أن يكون مؤشر قوة الإشارة المستلمة (RSSI) أكبر من الحد الأدنى المطلوب لمؤشر قوة الإشارة المستلمة أو أن يكون هناك عدد كافٍ من الزيارات على الاتصال (راجِع عمليات البحث أثناء تشغيل الشاشة لمعرفة الحد الأدنى لمؤشر قوة الإشارة المستلمة والزيارات).
- يتم التحقّق من الشبكة (الاتصال بالإنترنت) أو يوافق المستخدم على استخدامها بدون الاتصال بالإنترنت.
- الشبكة لا تفرض تكلفة استخدام.
إذا كانت الشبكة جيدة بما يكفي لتخطّي اختيار الشبكة، لن يتم اتّخاذ أي إجراء إضافي.
إذا لم تكن شبكة Wi-Fi المتصلة جيدة بما يكفي، أو إذا لم يكن الجهاز متصلاً بشبكة، يستدعي إطار العمل محدِّدات الشبكات لإنشاء قائمة بشبكات Wi-Fi المرشّحة للاتصال استنادًا إلى نتائج البحث المفلترة. تعثر الجهات المرشّحة للشبكة على عمليات ضبط حالية لشبكة Wi-Fi أو تنشئ عمليات ضبط جديدة للشبكات المرشّحة.
يتم فلترة نتائج الفحص لإزالة معرّفات BSSID التي تكون قيمة RSSI الخاصة بها أقل من قيمة RSSI الخاصة بالإدخال (يمكن ضبطها باستخدام التراكبات
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHzوconfig_wifi_framework_wifi_score_entry_rssi_threshold_5GHzوconfig_wifiFrameworkScoreEntryRssiThreshold6ghz). بالإضافة إلى ذلك، يتم فلترة معرّفات BSSID المحظورة. يمكن حظر معرّفات BSSID استنادًا إلى حالات تعذُّر الاتصال المتكرّرة وعمليات قطع الاتصال المتكرّرة والطلبات الصريحة من نقطة الوصول بعدم محاولة الربط لفترة زمنية معيّنة (MBO-OCE). يتم توضيح عملية حظر BSSID في قسم حظر SSID وBSSID.عندما يتحرّك الجهاز بسرعة، يتم اختياريًا فلترة نتائج البحث بشكل أكبر لإزالة معرّفات BSSID التي يختلف مستوى إشارة RSSI فيها بسرعة (وهذا يشير إلى أنّها لا تتحرّك مع الجهاز). يمكن ضبط هذا التحسين باستخدام
config_wifiHighMovementNetworkSelectionOptimizationEnabled(تفعيل التحسين أو إيقافه)، بالإضافة إلى التراكبَينconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMsوconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta، اللذين يضبطان متطلبات الثبات على نتائج البحث (تغيير قوة الإشارة المستلَمة (RSSI) على نتائج البحث التي تفصل بينها فواصل زمنية كافية).
يشغّل إطار العمل أداة تسجيل المرشّحين لإنشاء نتيجة لكل مرشّح SSID. يمكن أن تتضمّن خيارات SSID خيارات BSSID متعددة (من إنشاء الجهات التي تقترح الشبكات). المرشّح الفائز هو المرشّح الذي يحصل على أعلى نتيجة.
ينفّذ إطار العمل خوارزمية اختيار اتصال المستخدم، والتي قد تجعل شبكة يختارها المستخدم هي المرشّح الجديد الفائز بدلاً من استخدام المرشّح الفائز من أداة تقييم المرشّحين.
يحدّد إطار العمل ما إذا كان المرشّح الفائز يتطابق مع الشبكة المرتبطة. لكي يتم اعتبارها مطابقة، يجب استيفاء أحد الشروط التالية:
- يجب أن يكون للمرشّح الفائز وشبكة Wi-Fi المتصلة معرّف مجموعة الخدمات الأساسية (BSSID) نفسه.
- إذا كانت خدمة التجوال في البرامج الثابتة متاحة (بما في ذلك إمكانية حظر BSSID)، يجب أن يكون لمعرّف مجموعة الخدمات (SSID) ونوع الأمان الخاصين بالشبكة المتصلة نفس قيم معرّف مجموعة الخدمات (SSID) ونوع الأمان الخاصين بالشبكة الفائزة.
إذا تطابق المرشّح الفائز مع الشبكة المتصلة، لن يتم اتّخاذ أي إجراء آخر. إذا لم يتطابق المرشّح الفائز مع الشبكة، سيربط الجهاز المرشّح الفائز.
تقييم شبكة متصلة
يقيّم إطار عمل Android أو البرامج الثابتة بشكل دوري جودة الشبكة المتصلة. يوضّح هذا القسم كيفية تقييم الشبكة المتصلة عندما تكون الشاشة قيد التشغيل أو الإيقاف.
يتم إجراء هذا التقييم بالإضافة إلى اختيار الشبكة الذي تم تناوله في الأقسام السابقة.
الشاشة قيد التفعيل
يقيّم إطار عمل Android الشبكة المتصلة بالطريقة التالية:
تطلب خدمة Wi-Fi بيانات RSSI وإحصاءات طبقة الربط كل 3 ثوانٍ (يمكن ضبطها باستخدام التراكب
config_wifiPollRssiIntervalMilliseconds).في حال تفعيل تعديل الفاصل الزمني الديناميكي باستخدام التراكب
config_wifiAdjustPollRssiIntervalEnabled، يتغيّر الفاصل الزمني للاستطلاع ديناميكيًا استنادًا إلى حالة تنقّل الجهاز وقوة إشارة الاستقبال (RSSI).- يتم تمديد فترة الاستطلاع إلى 6 ثوانٍ (يتم ضبطها من خلال التراكب
config_wifiPollRssiLongIntervalMilliseconds) عندما يكون الجهاز ثابتًا و تكون قوة إشارة الاستقبال (RSSI) أكبر من -68 ديسيبل (يتم ضبطها من خلال التراكبينconfig_wifiClientRssiMonitorThresholdDbmوconfig_wifiClientRssiMonitorHysteresisDb). - يتم تقليل فاصل الاقتراع إلى 3 ثوانٍ (يتم ضبطه من خلال التراكب
config_wifiPollRssiIntervalMilliseconds) عندما يكون الجهاز غير ثابت أو عندما تكون قوة الإشارة المستلَمة (RSSI) أقل من -73 ديسيبل (يتم ضبطه من خلال التراكبconfig_wifiClientRssiMonitorThresholdDbm).
- يتم تمديد فترة الاستطلاع إلى 6 ثوانٍ (يتم ضبطها من خلال التراكب
تحتسب خدمة Wi-Fi درجة اتصال استنادًا إلى RSSI وإحصاءات طبقة الربط. يتوفّر نموذجان لهذه العملية الحسابية، ويمكن ضبطهما باستخدام
config_internalScorerType:- الإعداد التلقائي: أداة تسجيل تستند إلى تعلُّم الآلة وتم تدريبها على إحصاءات طبقة الربط.
- بديل: أداة تسجيل أقدم تقيّم الأداء استنادًا إلى التغييرات في قيمة RSSI.
اختياري: يمكن لمصنّعي المعدات الأصلية تخصيص منطق تقييم الشبكة المتصلة من خلال تنفيذ تطبيق مسجّل خارجيًا. ويتم ذلك من خلال تنفيذ واجهة
WifiConnectedNetworkScorerوتسجيلها باستخدام واجهة برمجة التطبيقاتWifiManager#setWifiConnectedNetworkScorer(executor, scorer).عند التسجيل، يتفاعل مقياس الأداء الخارجي مع إطار العمل من خلال مسار تبادلي ثنائي الاتجاه على النحو التالي:
عمليات الإدخال (الإطار ← أداة التسجيل)
يُعلم الإطار أداة التسجيل بالأحداث الرئيسية المتعلقة بدورة الحياة والجودة:- دورة حياة الجلسة: يشير الرمز
onStart()والرمزonStop()إلى وقت بدء اتصال Wi-Fi أو إيقافه. - إحصاءات شبكة Wi-Fi: يتلقّى نظام التسجيل تحديثات دورية لإحصاءات طبقة الربط (مثل قوة إشارة الاستقبال (RSSI) وسرعة الربط وعدد الحِزم) باستخدام
OnWifiUsabilityStatsListener#onWifiUsabilityStats(). لتلقّي هذه التحديثات، يجب أن يسجّل مقدّم النتيجة متتبِّعًا باستخدامWifiManager#addOnWifiUsabilityStatsListener().
- دورة حياة الجلسة: يشير الرمز
الإجراءات (المسجّل → الإطار)
يوجّه المسجّل خدمة Wi-Fi من خلال استدعاء طرق في كائن معاودة الاتصالScoreUpdateObserver:- حالة الاستخدام: المكالمات
notifyStatusUpdate(sessionId, isUsable)هي الآلية الأساسية للتحكّم في اختيار الشبكة.-
isUsable = true: الشبكة صالحة. ويتم ترقية الشبكة إلى الشبكة التلقائية لحركة بيانات النظام. isUsable = false: الشبكة غير صالحة. يتجنّب الإطار استخدامها كإعداد تلقائي، ما يؤدي إلى الرجوع إلى بيانات الجوّال.
-
- عمليات التحقّق من إمكانية الوصول: يؤدي الاتصال
requestNudOperation()إلى بدء عملية تحقّق نشطة من عدم إمكانية الوصول إلى الجهاز المجاور (NUD) (على سبيل المثال، طلب ARP أو ND) للتأكّد من إمكانية الوصول إلى البوابة. - قائمة الحظر الخاصة بمعرّف مجموعة الخدمات الأساسي (BSSID): يؤدي استدعاء
blocklistCurrentBssid()إلى منع الجهاز من إعادة الربط بنقطة الوصول الحالية. يكون هذا الخيار مفيدًا إذا رصدت أداة التقييم مشاكل خاصة بـ AP.
- حالة الاستخدام: المكالمات
إذا نفّذ مصنّع المعدات الأصلية أداة تسجيل نقاط خاصة به كما هو موضّح في الخطوة 3، ستؤجّل خدمة Wi-Fi القرارات المتعلّقة بتقييم الشبكة المتصلة إلى أداة تسجيل النقاط الخاصة بمصنّع المعدات الأصلية.
إذا لم تنفّذ الشركة المصنّعة للجهاز (OEM) أداة تسجيل خاصة بها، ستستخدم خدمة Wi-Fi النتيجة المحسوبة في الخطوة 2 لتحديد ما إذا كان سيتم التبديل إلى بيانات الجوّال للاتصال بالإنترنت.
الشاشة مقفلة
لا يبدأ إطار العمل عملية تقييم على الشبكة المتصلة، ولكن قد تظل عملية اختيار الشبكة تحدث إذا بدأت عمليات البحث بواسطة مكونات أخرى (مثل خدمات الموقع الجغرافي). يقوم البرنامج الثابت بتقييم جودة الشبكة، وإذا كانت جودة الشبكة سيئة، قد ينتقل البرنامج الثابت إلى شبكة أخرى أو (في النهاية) يفصل الاتصال بالشبكة ويوقظ الجهاز المضيف.
عمليات فحص الاتصال
يتم إجراء عمليات الفحص تلقائيًا استنادًا إلى ما إذا كانت الشاشة قيد التشغيل أو إيقاف التشغيل مع الاتصال بشبكة Wi-Fi أو إيقاف التشغيل بدون الاتصال بشبكة Wi-Fi.
الشاشة قيد التفعيل
يُفعّل إطار العمل قرارات البحث على فترات زمنية متزايدة عند تشغيل الشاشة. يتم ضبط فواصل قرار الفحص باستخدام التراكبات
config_wifiDisconnectedScanIntervalScheduleSec وconfig_wifiConnectedScanIntervalScheduleSec وconfig_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (وهي عبارة عن مصفوفات من الأعداد الصحيحة). بشكلٍ تلقائي، تتم عمليات الفحص باستخدام فواصل زمنية ذات تراجع أسي تبلغ 20 و40 و80 و160 ثانية، مع إمكانية إجراء عمليات فحص لاحقة بفواصل زمنية تبلغ 160 ثانية (هذه هي القيم التلقائية لهذه التراكبات).
تتم إعادة ضبط فواصل المسح الزمني المتزايدة بشكل كبير وإعادة تشغيلها عند 20 ثانية كلما تغيّرت حالة الشاشة، أي عند تفعيل الشاشة أو إيقافها.
(الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث) إذا كانت هناك حاجة إلى فواصل زمنية مختلفة للمسح الضوئي أثناء وقت التشغيل، يمكن لتطبيق OEM ذي امتيازات خاصة استدعاء واجهة برمجة التطبيقات WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) لضبط جدول المسح الضوئي أثناء تشغيل الشاشة بشكل ديناميكي.
ويستند قرار تنفيذ عملية البحث أو تخطّيها إلى ما إذا كان اتصال الشبكة الحالي جيدًا بما يكفي لتخطّي البحث. يكون الاتصال جيدًا بما يكفي لتخطّي عملية الفحص في حال استيفاء أيّ من المتطلبات التالية:
- أن يكون الجهاز متصلاً باتصال OSU.
- يجب أن تكون هناك زيارات كافية يتم توجيهها من خلال الاتصال (راجِع حدود الزيارات لاحقًا).
- أن تكون قيمة RSSI أكبر من الحد الأدنى المطلوب (راجِع حدود RSSI لاحقًا)، وأن يكون قد تم اختيار الشبكة مؤخرًا (10 دقائق تلقائيًا، ولكن يمكن ضبطها باستخدام تراكب
config_wifiConnectedHighRssiScanMinimumWindowSizeSec)، وأن تكون الشبكة إما معتمَدة (متصلة بالإنترنت) أو موافقًا عليها من قِبل المستخدم لاستخدامها بدون الوصول إلى الإنترنت.
في ما يلي عتبات RSSI وحركة المرور:
- قيمة RSSI أكبر من -73 ديسيبل ميلي واط لنطاق 2.4 غيغاهرتز، والذي تم ضبطه باستخدام التراكب
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz، أو -70 ديسيبل ميلي واط لنطاقَي 5 غيغاهرتز و6 غيغاهرتز، واللذين تم ضبطهما باستخدام التراكبَينconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHzوconfig_wifiFrameworkScoreLowRssiThreshold6ghz. - أن يكون عدد الحِزم التي يتم إرسالها أو تلقّيها أكبر من 16 حزمة في الثانية (pps) تم ضبطها باستخدام تراكب
config_wifiFrameworkMinPacketPerSecondActiveTraffic.
عندما يكون الجهاز متصلاً بالإنترنت والشاشة قيد التشغيل، يراقب برنامج تسجيل النتائج المتصل جودة شبكة Wi-Fi بشكل دوري من خلال البحث عن إشارات مثل RSSI وعدد الحِزم التي تم نقلها. إذا تبيّن أنّ جودة شبكة Wi-Fi رديئة (كما هو موضّح لاحقًا) وكان الجهاز يتيح استخدام محطتَي بث متزامنتَين، سيتم بدء عملية بحث. يمكن استخدام التراكب
config_wifiLowConnectedScoreThresholdToTriggerScanForMbb لضبط حدّ النتيجة الذي يؤدي إلى بدء عملية الفحص. يمكن استخدام التراكب
config_wifiLowConnectedScoreScanPeriodSeconds لضبط فترة عمليات الفحص هذه.
الشاشة مطفأة والجهاز متصل بشبكة Wi-Fi
عندما تكون الشاشة مطفأة والجهاز متصلاً بشبكة Wi-Fi، ينفّذ البرنامج الثابت (Wi-Fi SoC) عمليات بحث عن شبكات تجوال. لا ينفّذ إطار العمل أي عمليات فحص عندما تكون الشاشة مطفأة.
الشاشة مطفأة والجهاز غير متصل بشبكة Wi-Fi (حالة عدم الاتصال)
عندما تكون الشاشة مطفأة ويكون اتصال Wi-Fi مقطوعًا، ينفّذ البرنامج الثابت عمليات بحث PNO عن معرّفات SSID. يضبط إطار العمل البرامج الثابتة باستخدام قائمة بمعرّفات SSID للبحث عنها وقائمة بالقنوات التي سيتم البحث فيها. في حال العثور على SSID تم ضبطه، تنشّط البرامج الثابتة إطار العمل.
يضبط إطار العمل أيضًا الفترة الزمنية التي يجب أن ينفّذ فيها البرنامج الثابت عمليات بحث PNO، وذلك باستخدام حالة تنقّل الجهاز لاختيار فترات بحث مختلفة.
في حالة عدم التنقّل (الجهاز ثابت)، يكون الفاصل الزمني 60 ثانية لعمليات الفحص الثلاث الأولى (يتحكّم فيها تراكب config_wifiStationaryPnoScanIntervalMillis)، و180 ثانية (مضاعف ثابت بمقدار 3 مرات للتراكب) لعمليات الفحص اللاحقة. في حالة التنقّل السريع، يكون الفاصل الزمني 20 ثانية لعمليات الفحص الثلاث الأولى (يتم التحكّم فيها من خلال تراكب config_wifiMovingPnoScanIntervalMillis)، و60 ثانية (مضاعف ثابت 3 مرات للتراكب) لعمليات الفحص اللاحقة.
المرشّحون في الشبكة
تعثر الجهات المرشِّحة للشبكات على عمليات ضبط (WifiConfiguration) أو تنشئها للشبكات التي تستوفي الشروط التالية:
- متاحة (استنادًا إلى نتائج البحث) أو الشبكة المتصلة (التي تكون أحيانًا غير متوفّرة في نتائج البحث غير الموثوقة).
- يجب أن يكون لديك حدّ أدنى لمستوى إشارة RSSI. الحد الأدنى لقوة إشارة RSSI هو -80 dBm لنطاق 2.4 غيغاهرتز و-77 dBm لنطاقَي 5 غيغاهرتز و6 غيغاهرتز، ويمكن ضبطه باستخدام
التراكبات
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHzوconfig_wifi_framework_wifi_score_entry_rssi_threshold_5GHzوconfig_wifiFrameworkScoreEntryRssiThreshold6ghz. - لم يتم حظره، مثلاً بسبب تعذُّر الاتصال في السابق.
- لا تشير الشبكة إلى أنّها غير قابلة للاستخدام (على سبيل المثال، باستخدام MBO/OCE).
- يمكن ربطها باستخدام بيانات الاعتماد المتوفّرة على الجهاز.
يتم استخدام الجهات التالية التي ترشّح الشبكات:
- مقياس الشبكة المحفوظة: يقيّم جميع الشبكات المحفوظة (بما في ذلك اشتراكات Passpoint المحفوظة).
- مقدّم الشبكة المقترَحة: يقيّم جميع الشبكات التي توفّرها التطبيقات باستخدام Suggestion API (بما في ذلك اشتراكات Passpoint المقترَحة).
المرشّحون الأعلى تحقيقًا للنتائج
يقوم مقيّمون بتقييم كل مرشّح ومنحه درجة. تستند النتيجة الخاصة بـ
ThroughputScorer (أداة تسجيل النتائج التلقائية) إلى ما يلي:
- يتم احتساب النتيجة الأساسية استنادًا إلى قوة الإشارة المستلَمة (RSSI)، مع وضع حد أقصى لقوة الإشارة المستلَمة عند -73 ديسيبل ميلي واط لنطاق التردد 2.4 غيغاهرتز أو -70 ديسيبل ميلي واط لنطاقَي التردد 5 غيغاهرتز و6 غيغاهرتز (تم ضبطهما باستخدام التراكبات
config_wifi_framework_wifi_score_low_rssi_threshold_24GHzوconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHzوconfig_wifiFrameworkScoreLowRssiThreshold6ghz). - يتم احتساب زيادة في النتيجة استنادًا إلى تقدير سرعة معالجة البيانات المستمد من التكنولوجيا ومعدل تكرار القناة وعرض النطاق الترددي وقوة إشارة الاستقبال (RSSI) وظروف القناة والحد الأقصى لعدد تدفقات البيانات المكانية وغيرها من المَعلمات. يمكن ضبط زيادة النتيجة باستخدام طبقتَي التراكب
config_wifiFrameworkThroughputBonusNumeratorوconfig_wifiFrameworkThroughputBonusDenominator، ويقتصر ذلك على قيمة قصوى محدّدة باستخدام طبقة التراكبconfig_wifiFrameworkThroughputBonusLimit. - تحصل الشبكة المرشّحة التي اختارها المستخدم أو أحد التطبيقات مؤخرًا على زيادة كبيرة في النتيجة لمدة يمكن ضبطها باستخدام تراكب
config_wifiFrameworkLastSelectionMinutes(خلال هذه المدة، يتم التأكّد من اختيار الشبكة على الشبكات التي لم يختارها المستخدم). - يحصل المرشّح الذي يتطابق مع الشبكة الحالية على زيادة في النتيجة تم ضبطها من خلال الطبقتَين
config_wifiFrameworkCurrentNetworkBonusMinوconfig_wifiFrameworkCurrentNetworkBonusPercent(يحصل على مكافأة إضافية استنادًا إلى نسبة من نتيجة RSSI والنتيجة المستندة إلى معدل نقل البيانات، وصولاً إلى الحد الأدنى القابل للضبط). - تحصل الشبكة الآمنة على تقييم أعلى من الشبكة المفتوحة. يتم ضبط المكافأة باستخدام التراكب
config_wifiFrameworkSecureNetworkBonus. - يتم منح الشبكة التي لا تفرض تكلفة استخدام (المجانية) درجة أعلى من الشبكة التي تفرض تكلفة استخدام (المدفوعة).
يتم ضبط المكافأة باستخدام التراكب
config_wifiFrameworkUnmeteredNetworkBonus. - يتم منح الشبكة المحفوظة درجة أعلى من الشبكة المقترَحة باستخدام واجهة برمجة التطبيقات Suggestion API. يتم ضبط المكافأة باستخدام التراكب
config_wifiFrameworkSavedNetworkBonus. - يتم تقييم الشبكات غير الموثوق بها (التي يمكن طلبها كجزء من Suggestion API) بدرجة أقل من أي شبكة أخرى.
- تحصل الشبكة التي تم رصد عدم توفّر اتصال بالإنترنت فيها سابقًا على النتيجة 0 إذا كان الجهاز متصلاً بشبكة أخرى يمكنها الاتصال بالإنترنت.
تؤدي المكافأة التلقائية التي يتم تقديمها عند حفظ المحتوى مقارنةً بالمحتوى المقترَح والمحتوى الذي لا تفرض تكلفة استخدام عليه مقارنةً بالمحتوى الذي تفرض تكلفة استخدام عليه (أي قيم التراكب التلقائية) إلى ترتيب صارم للأولوية بين المحتوى المحفوظ والمحتوى المقترَح والمحتوى الذي تفرض تكلفة استخدام عليه والمحتوى الذي لا تفرض تكلفة استخدام عليه:
- الشبكات المحفوظة التي لا تفرض تكلفة استخدام
- الشبكات المقترَحة التي لا تفرض تكلفة استخدام
- الشبكات المحفوظة التي تفرض تكلفة استخدام
- الشبكات المقترَحة التي تفرض تكلفة استخدام
وهذا يعني أنّه يتم دائمًا اختيار شبكة محفوظة لا تفرض تكلفة استخدام (مجانًا) قبل اختيار شبكة محفوظة تفرض تكلفة استخدام (مدفوعة). قد تتجاوز المكافأة التي تم اختيارها مؤخرًا (من قِبل المستخدم أو التطبيق) هذه الأولوية الصارمة.
يمكن أن يتضمّن إطار العمل العديد من أدوات تسجيل المرشحين المثبّتة، ولكن لا يمكن تفعيل أكثر من أداة واحدة في الوقت نفسه. يمكن استخدام مقاييس التقييم الأخرى (للتحقّق من الخوارزميات البديلة). في نظام التشغيل Android 11، يكون برنامج التسجيل التلقائي هو ThroughputScorer.
حظر معرّف مجموعة الخدمات (SSID) ومعرّف مجموعة الخدمات الأساسية (BSSID)
قد يحظر الإطار معرّفات SSID أو BSSID، ما يعني أنّه لن يأخذها في الاعتبار عند إجراء عمليات الربط، سواء بشكل مؤقت أو دائم.
حظر معرِّف مجموعة الخدمات الأساسية (BSSID)
تعمل ميزة حظر BSSID من خلال الاحتفاظ بعدّادَين للأخطاء، وهما عدّاد الأخطاء المتواصلة وعداد التسلسل، لكل نوع محدّد من الأخطاء (راجِع القائمة أدناه لمعرفة أنواع الأخطاء). عند حدوث عطل:
- يتم زيادة عدد مرات حدوث نوع التعذُّر المقابل.
- في حال بلوغ الحدّ الأدنى لعدد مرات حدوث نوع الخطأ هذا:
- تم حظر معرّف مجموعة الخدمات الأساسية (BSSID).
- يتم زيادة عدّاد التسلسل للفشل.
تبدأ مدة حظر معرّف مجموعة الخدمات الأساسية (BSSID) بقيمة أساسية قابلة للضبط. يتم تحديد هذه القيمة الأساسية من خلال التراكبات config_wifiBssidBlocklistMonitorBaseBlockDurationMs أو config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs، وذلك حسب قوة إشارة الاستقبال (RSSI). بعد ذلك، تزداد المدة بشكل كبير لتصل إلى الحد الأقصى القابل للضبط الذي تحدده طبقة config_wifiBssidBlocklistMonitorFailureStreakCap. تزداد المدة إذا استمرت حالات التعذّر في الحدوث على BSSID نفسه. المدة هي المدة الأساسية التي يتم زيادتها بشكل كبير حسب عدد مرات الفشل المتتالية. على سبيل المثال، يعني عدد مرات الفشل المتتالية البالغ 2 أنّ مدة الحظر الأساسية تزيد بمقدار 4 مرات.
تعتمد الحدود الدنيا لحظر معرّف مجموعة الخدمات الأساسية (BSSID) على سبب التعذّر، ويمكن تخصيص كل منها باستخدام التراكبات:
- يرفض نقطة الوصول الاقتران باستخدام رمز تعذُّر معالجة محطة جديدة MBO/OCE:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold. - تعذّر التحقّق من الاتصال بالإنترنت من خلال هذه الشبكة:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold. - رمز تعذُّر المصادقة بكلمة المرور غير الصحيحة:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold. - رمز تعذُّر المصادقة على شبكات بروتوكول المصادقة القابلة للتوسيع (EAP):
config_wifiBssidBlocklistMonitorEapFailureThreshold. - رفض الربط، ورفض الربط العام الآخر:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold. - مهلة الربط:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold. - تعذُّر المصادقة، حالات تعذُّر المصادقة العامة الأخرى:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold - تعذّر بروتوكول DHCP، تعذّر توفير بروتوكول DHCP:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold. - انقطاع الاتصال بشكل غير طبيعي، حيث انقطع اتصال الجهاز بالشبكة خلال فترة قصيرة جدًا بعد الاتصال:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. يمكن ضبط فترة الوقت باستخدامconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.
شروط محو قائمة BSSID المحظورة
تتم إزالة معرّف مجموعة الخدمات الأساسية (BSSID) من القائمة المحظورة في الحالات التالية:
- عند تبديل شبكة Wi-Fi، تتم إزالة جميع معرّفات مجموعة الخدمات الأساسية (BSSID) من قائمة الحظر.
- عندما ينقر المستخدم على شبكة في أداة اختيار شبكة Wi-Fi، تتم إزالة جميع معرّفات مجموعة الخدمات الأساسية (BSSID) الخاصة بالشبكة التي اختارها المستخدم من قائمة الحظر.
- عند انتهاء مدة الحظر (انتهاء المهلة)، تتم إزالة معرّفات BSSID من قائمة الحظر.
- عند إعادة تشغيل النظام، يتم محو جميع قوائم الحظر.
- عند إزالة شبكة، تتم إزالة جميع أرقام تعريف مجموعة الخدمات الأساسية (BSSID) المرتبطة بهذه الشبكة من قائمة الحظر.
شروط إعادة ضبط عدّادات الأخطاء وسلسلة الإجابات الصحيحة:
- عند إعادة تشغيل النظام، تتم إعادة ضبط العدادات لجميع أرقام تعريف مجموعة الخدمات الأساسية (BSSID).
- عند إزالة شبكة، تتم إعادة ضبط العدادات لمعرّفات BSSID المرتبطة بهذه الشبكة.
عند نجاح اتصال L2، تتم إعادة ضبط العدادات لرموز الخطأ التالية:
REASON_AP_UNABLE_TO_HANDLE_NEW_STAREASON_WRONG_PASSWORDREASON_EAP_FAILUREREASON_ASSOCIATION_REJECTIONREASON_ASSOCIATION_TIMEOUTREASON_AUTHENTICATION_FAILUREREASON_ABNORMAL_DISCONNECT(يتم محوها بشكل مشروط فقط إذا كان آخر وقت اتصل فيه الجهاز بمعرّف مجموعة الخدمات الأساسية هذا قبل أكثر من 3 ساعات)REASON_NONLOCAL_DISCONNECT_CONNECTING
عندما تنجح عملية التحقّق من الشبكة، تتم إعادة ضبط العدادات لرمز الخطأ التالي:
REASON_NETWORK_VALIDATION_FAILURE
عند نجاح عملية توفير DHCP، تتم إعادة ضبط العدادات لرمز الخطأ التالي:
REASON_DHCP_FAILURE
حظر معرّف مجموعة الخدمات (SSID)
تعمل عملية حظر معرّف SSID بطريقة مشابهة لعملية حظر معرّف BSSID. يتم زيادة عدّاد حالات الفشل لكل نوع من أنواع حالات الفشل لكل شبكة عند حدوث حالات فشل في الاتصال من هذا النوع.
عندما يتجاوز عدد حالات الفشل من نوع معيّن الحدّ، يتم حظر SSID بشكل دائم أو مؤقت استنادًا إلى الإعداد. يتم ترميز إعدادات كل نوع من أنواع الأعطال في WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS، ويتم تلخيصها في الجدول التالي.
|
* بالنسبة إلى الشبكات التي تم إيقافها مؤقتًا، تتغيّر مدة الإيقاف بشكل ديناميكي استنادًا إلى عدد حالات فشل الاتصال المتتالية التي حدثت على الشبكة. بعد تعذُّر اتصال الشبكة خمس مرات متتالية، سيؤدي كل تعذُّر لاحق إلى مضاعفة مدة الإيقاف مقارنةً بالمدة السابقة. على سبيل المثال، يتم إيقاف الشبكة التي تسجّل خمس حالات فشل متتالية لمدة 5 دقائق، ثم لمدة 10 دقائق عند حدوث حالة الفشل السادسة، ولمدة 20 دقيقة عند حدوث حالة الفشل السابعة، وهكذا حتى الحد الأقصى وهو 18 ساعة. |
||||
| رمز الخطأ | الوصف | الحدّ | مدة الإيقاف الأساسية* | نوع الإيقاف |
|---|---|---|---|---|
DISABLED_DHCP_FAILURE |
تعذُّر توفير بروتوكول DHCP | 5 | ٥ دقائق | مؤقتة |
DISABLED_NO_INTERNET_TEMPORARY |
تعذّر إثبات صحة الشبكة، ولكن يذكر المستخدم أنّه يريد مواصلة الاتصال بهذه الشبكة في المستقبل | 1 | 10 دقائق | مؤقتة |
DISABLED_AUTHENTICATION_NO_CREDENTIALS |
لا تتوفّر لدى طالب المصادقة بيانات اعتماد للاتصال بالشبكة | 1 | لا ينطبق | دائمة |
DISABLED_NO_INTERNET_PERMANENT |
الإعداد التلقائي لتعذُّر التحقّق من الشبكة | 1 | لا ينطبق | دائمة |
DISABLED_BY_WIFI_MANAGER |
متوقّف نهائيًا وغير مستخدَم | 1 | لا ينطبق | دائمة |
DISABLED_BY_WRONG_PASSWORD |
كلمة المرور غير صحيحة، ولم يسبق أن تم الاتصال بهذه الشبكة بنجاح | 1 | لا ينطبق | دائمة |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
تعذُّر مصادقة EAP بسبب عدم الاشتراك في شريحة SIM | 1 | لا ينطبق | دائمة |
DISABLED_ASSOCIATION_REJECTION |
أخطاء رفض الربط | 5 | ٥ دقائق | مؤقتة |
DISABLED_AUTHENTICATION_FAILURE |
حالات تعذُّر المصادقة الأخرى (أي ليس بسبب كلمة مرور خاطئة أو تعذُّر EAP) | 5 | ٥ دقائق | مؤقتة |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR |
حدث خطأ في برنامج الاستخدام المبكر الخاص بمقدّم الخدمة (الخاص). | 1 | لا ينطبق | دائمة |
DISABLED_NETWORK_NOT_FOUND |
تعذّر على برنامج الطالب العثور على شبكة في نتائج البحث تتطابق مع الشبكة التي طلبها إطار العمل للاتصال (بما في ذلك إمكانات الشبكة). | 2 | ٥ دقائق | مؤقتة |
DISABLED_CONSECUTIVE_FAILURES |
تعذّر الاتصال بالشبكة خمس مرات أو أكثر على التوالي. يشمل نوع الخطأ لهذه الأخطاء أنواع الأخطاء المدرَجة في هذا الجدول، على سبيل المثال لا الحصر. |
5 | ٥ دقائق | مؤقتة |
تتم إعادة تفعيل الشبكة التي تم إيقافها مؤقتًا في الحالات التالية:
- انتهت مدة الإيقاف.
- يختار المستخدم الشبكة يدويًا للاتصال بها.
- يُفعّل المستخدم شبكة Wi-Fi أو يوقفها.
- تتم إعادة تشغيل النظام.
- تم إيقاف الشبكة عند مستوى RSSI منخفض جدًا، ولكن تم رصد الشبكة مرة أخرى لاحقًا عند مستوى RSSI معتدل أو أعلى.
تتم إعادة تفعيل شبكة تم إيقافها نهائيًا في الحالات التالية:
- يختار المستخدم الشبكة يدويًا للاتصال بها.
تتم إعادة ضبط عدّادات الأعطال لشبكة معيّنة في الحالات التالية:
- تتم إزالة الشبكة.
- تم توصيل الجهاز بالشبكة بنجاح.
- تمت إعادة تفعيل الشبكة بعد انتهاء مدة الإيقاف.
- يختار المستخدم الشبكة يدويًا للاتصال بها.
- تتم إعادة تشغيل النظام.
بطاقات النتائج
تسجّل بطاقات النتائج، التي تم طرحها في Android 10، إحصاءات على الجهاز فقط حول معرّفات BSSID. يتم الاحتفاظ ببطاقات النتائج باستخدام خدمة
IpMemoryStore.
لا يتم استخدام بطاقات النتائج في اختيار الشبكة على Android 11.
خيار ربط حساب المستخدم
يتضمّن Android خوارزمية اختيار اتصال المستخدم التي تتيح لعملية الاختيار تفضيل شبكات Wi-Fi التي اتصل بها المستخدم بشكل صريح، مثل شبكة منزلية. قد يفضّل المستخدمون هذه الشبكات على شبكات Wi-Fi العامة حتى إذا كان الأداء أقل من الشبكة العامة لأنّها توفّر خدمات إضافية، مثل إمكانية التحكّم في الأجهزة المنزلية.
يتم تسجيل إعدادات الشبكة المفضّلة للمستخدم من خلال وضع علامة على جميع إعدادات شبكة Wi-Fi المرئية وقوة الإشارة الخاصة بها في الوقت الذي يختار فيه المستخدم شبكة. إذا تم اختيار أحد إعدادات شبكة Wi-Fi المميزة أثناء عملية الاختيار التلقائي وكانت شبكة من اختيار المستخدم متاحة، ستلغي خوارزمية اختيار الشبكة من قِبل المستخدم عملية الاختيار التلقائي وتختار الشبكة التي حدّدها المستخدم إذا استوفيت الشروط التالية:
- كانت شبكة اختيار الاتصال بالمستخدم متصلة بالإنترنت في آخر مرة تم استخدامها فيها.
- يتم اختيار اتصال المستخدم بقوة إشارة لا تقل عن قوة الإشارة عند اختيارها في الأصل مع هامش خطأ. يمكن ضبط هامش الخطأ هذا باستخدام تراكب
config_wifiEstimateRssiErrorMarginDb.
يظل خيار شبكة الاتصال المفضّلة للمستخدم محفوظًا بعد إعادة التشغيل. يعمل خيار الاتصال بشبكات محفوظة وشبكات Passpoint وشبكات مقترَحة.
محطتان متزامنتان
يوضّح هذا القسم كيفية اختيار شبكة Wi-Fi عندما يتيح الجهاز الاتصال بشبكتَي Wi-Fi في الوقت نفسه.
Make-before-break
في حال تفعيل وظيفة الاتصال قبل الفصل، يحاول الجهاز الاتصال بالشبكة الجديدة قبل فصله عن الشبكة القديمة. يستخدم مسار make-before-break خوارزمية اختيار الشبكة نفسها التي يستخدمها مسار break-before-make (وهو المسار الذي ينقطع فيه اتصال الجهاز بالشبكة القديمة قبل الاتصال بالشبكة الجديدة). إذا اختارت خوارزمية اختيار الشبكة شبكة لا يمكن التبديل إليها باستخدام ميزة "التوصيل قبل الفصل"، سيعود الجهاز تلقائيًا إلى ميزة "الفصل قبل التوصيل".
الاتصال بالشبكة المقيدة والإنترنت في الوقت نفسه
في حال تفعيل وظيفة الاتصال المتزامن بشبكة مقيّدة والإنترنت، يمكن للجهاز الاتصال بشبكة Wi-Fi ثانوية مقيّدة لا تتوفّر إلا لتطبيقات محدّدة تم ضبطها من قِبل الشركة المصنّعة للجهاز. تتوفّر تعليمات للشركات المصنّعة للأجهزة حول كيفية ضبط هذا الإعداد في مقالة الاتصال المقيّد والمتزامن بالإنترنت.
عندما ترصد خوارزمية اختيار الشبكة نتائج بحث تطابق الاقتراح المدفوع أو الخاص من الشركة المصنّعة للجهاز الأصلي، يتم الاتصال تلقائيًا بهذه الشبكة كشبكة ثانية. يتم عادةً اختيار الشبكة الرئيسية من شبكات Wi-Fi (التي توفّر اتصالاً بالإنترنت للتطبيقات العادية) بشكل متزامن.
الأسئلة الشائعة
هل تحظى الشبكات الآمنة دائمًا بالأولوية على الشبكات المفتوحة؟
لا، فالشبكات المحفوظة مقابل الشبكات المقترَحة والشبكات التي تفرض تكلفة استخدام مقابل الشبكات التي لا تفرض تكلفة استخدام هي فئات أساسية يتم تقييم الشبكات فيها. ضمن كل فئة، تحظى الشبكات الآمنة بأولوية أعلى من الشبكات المفتوحة، ولكن يتم التركيز بشكل أكبر على جودة الاتصال.
والسبب هو أنّ أمان بيانات المستخدمين الفعلي يتم توفيره من خلال التشفير التام بين الأطراف (مثل بروتوكول أمان طبقة النقل). لا تشفّر الشبكات الآمنة سوى الجزء الأول من عملية الاتصال، وحتى في الشبكات التي تستخدم مفاتيح مشترَكة مسبقًا، لا توفّر هذه الشبكات قدرًا كبيرًا من الخصوصية.
لماذا يتم منح الأولوية للشبكات المحفوظة على الشبكات المقترَحة؟
تُمنح الأولوية للشبكات المجانية (غير المحدودة) المحفوظة على الشبكات المجانية المقترَحة، كما تُمنح الأولوية للشبكات المحدودة المحفوظة على الشبكات المحدودة المقترَحة.
تُمنح الشبكات المحفوظة الأولوية على الشبكات المقترَحة لأنّها الشبكات التي أضافها المستخدم إلى الجهاز بشكل صريح. ويشير ذلك إلى تفضيل الاتصال بهذه الشبكات عند الإمكان.
يُرجى العِلم أنّه يمكن للمستخدمين إيقاف سلوك الاتصال التلقائي لشبكات فردية محفوظة، أي يمكنهم الإشارة إلى أنّه سيتم استخدام هذه الشبكات يدويًا فقط ولن يتم اعتبارها تلقائيًا من قِبل الجهاز.
هل يمكنني تغيير ترتيب الأولوية الصارمة أو إزالته تمامًا؟
يمكنك تعديل قرارات اختيار الشبكة من خلال تعديل تراكبات المكافآت المدرَجة في الأقسام السابقة. ومع ذلك، لا يُنصح بتغيير القيم التلقائية، لأنّه تم اختيارها بعد دراسة متأنية لعدة حالات استخدام.