اختيار شبكة Wi-Fi

توضّح هذه الصفحة الخوارزميات والإجراءات المستخدَمة في نظام التشغيل Android 12 لاختيار شبكات Wi-Fi والتبديل بينها. يقيّم جهاز Android باستمرار جودة الشبكة المتصلة ويقيّم جودة الشبكات المتاحة.

مدة صلاحية الربط التلقائي

يوضّح هذا القسم كيف يقيّم جهاز Android ويتصل بشبكات Wi-Fi المتاحة.

  1. يبحث الجهاز عن الشبكات المتاحة بإحدى الطريقتَين التاليتَين، حسب ما إذا كانت الشاشة مفعّلة أو غير مفعّلة.

    • الشاشة مفعّلة (متصل): يقيّم نظام Android الفرعي للاتصال بانتظام ما إذا كان الاتصال الحالي جيدًا بما يكفي لتخطّي عملية البحث (كما هو موضّح في عمليات البحث أثناء تفعيل الشاشة). إذا لم يكن الاتصال جيدًا بما يكفي لتخطّي عملية البحث، سيؤدي نظام الاتصال الفرعي إلى بدء بحث لرصد الشبكات المتاحة. يمكن أن يتم تشغيل عمليات الفحص هذه أيضًا من خلال مكونات أخرى في النظام، مثل نظام الموقع الجغرافي أو أحد التطبيقات (بما في ذلك تطبيق "الإعدادات").
    • الشاشة مفعّلة (تم قطع الاتصال): يصدر نظام Android الفرعي للاتصال عمليات بحث دورية وفقًا لجدول زمني للتراجع الأسي. تقيِّم الوحدة جميع نتائج البحث التي تم تلقّيها وتحاول اختيار أفضل شبكة للاتصال بها.
    • إيقاف تشغيل الشاشة (غير متصل): يبرمِج مضيف وحدة المعالجة المركزية (CPU) البرنامج الثابت باستخدام قائمة بالشبكات المفضَّلة من خلال عمليات فحص ميزة "تفريغ الشبكة المفضَّلة" (PNO) فور إيقاف تشغيل الشاشة. ويوقظ البرنامج الثابت المضيف إذا عثر على أي من الشبكات المفضَّلة. يفترض AOSP أنّ الجهاز يتيح استخدام ميزة "الشبكات الخاصة فقط".

    يمكن استخدام طريقة WifiManager#allowAutojoinGlobal(boolean) لإيقاف عمليات الربط التلقائي. هذه واجهة برمجة تطبيقات ذات امتيازات يمكن لمصنّعي الأجهزة استخدامها في ظروف محدودة (على سبيل المثال، جهاز غير متوافق مع الأجهزة الجوّالة، وجهاز تم إعداده مسبقًا).

    إذا كان الجهاز متصلاً بالشبكة وتم ضبط تراكب config_wifi_framework_enable_associated_network_selection على false، لن يتم إجراء عمليات بحث عن الاتصال، ولن تؤدي نتائج البحث إلى اختيار الشبكة. لا يؤثر هذا الإعداد عندما يكون الجهاز غير متصل، ما يعني أنّه سيظل يتم إجراء عمليات فحص الاتصال واختيار الشبكة.

  2. يتم تقييم نتائج الفحص.

    • إذا كان الجهاز متصلاً بشبكة 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.

    • عندما يكون الجهاز في حالة حركة (إما بسرعة منخفضة أو عالية)، يتم استبعاد جميع شبكات مشغّلي شبكات الجوّال من نتائج البحث. يمكن استبعاد مشغّلي شبكة جوّال محدّدين من هذا الفلتر من خلال إضافة معرّف مشغّل شبكة الجوّال إلى config_wifiMobilityFilterCarrierIdBlocklist.

    • عندما يتحرّك الجهاز بسرعة، يتم بشكل اختياري فلترة نتائج البحث بشكل أكبر لإزالة معرّفات BSSID التي يختلف مستوى إشارة RSSI فيها بسرعة (وهذا يشير إلى أنّها لا تتحرّك مع الجهاز). يمكن ضبط هذه التحسينات باستخدام config_wifiHighMovementNetworkSelectionOptimizationEnabled (لتفعيل التحسين أو إيقافه)، بالإضافة إلى التراكبات config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs وconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta، التي تضبط متطلبات الثبات على نتائج البحث (تغيير قوة الإشارة المستلَمة (RSSI) على نتائج البحث التي تفصل بينها فواصل زمنية كافية).

  3. يشغّل إطار العمل أداة تسجيل نقاط المرشحين لإنشاء نتيجة لكل مرشح SSID. يمكن أن تتضمّن خيارات SSID خيارات BSSID متعددة (من إنشاء الجهات التي تقترح الشبكات). المرشّح الفائز هو المرشّح الذي يحصل على أعلى نتيجة.

  4. ينفّذ إطار العمل خوارزمية اختيار اتصال المستخدم، والتي قد تجعل شبكة يختارها المستخدم هي المرشّح الفائز الجديد بدلاً من استخدام المرشّح الفائز من أداة تقييم المرشّحين.

  5. يحدّد إطار العمل ما إذا كان المرشّح الفائز يتطابق مع الشبكة المتصلة. لكي يتم اعتبارها مطابقة، يجب استيفاء أحد الشروط التالية:

    • يجب أن يكون للمرشّح الفائز وشبكة Wi-Fi المتصلة معرّف مجموعة الخدمة الأساسية (BSSID) نفسه.
    • إذا كانت خدمة التجوال في البرامج الثابتة متاحة (بما في ذلك إمكانية حظر معرّف مجموعة الخدمات الأساسية)، يجب أن يكون لدى الشبكة المتصلة والشبكة المرشّحة الفائزة معرّف مجموعة الخدمات الأساسية ونوع الأمان نفسهما.

    إذا تطابق المرشّح الفائز مع الشبكة المتصلة، لن يتم اتّخاذ أي إجراء آخر. إذا لم يتطابق المرشّح الفائز مع الشبكة، سيربط الجهاز نفسه بالمرشّح الفائز.

تقييم شبكة متصلة

يقيّم إطار عمل Android أو البرامج الثابتة بشكل دوري جودة الشبكة المتصلة. يوضّح هذا القسم كيفية تقييم الشبكة المتصلة عندما تكون الشاشة في وضع التشغيل أو الإيقاف.

يتم إجراء هذا التقييم بالإضافة إلى اختيار الشبكة الذي تم تناوله في الأقسام السابقة.

الشاشة قيد التفعيل

يقيّم إطار عمل Android الشبكة المتصلة بالطريقة التالية:

  1. تطلب خدمة 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).
  2. تحسب خدمة Wi-Fi درجة اتصال استنادًا إلى RSSI وإحصاءات طبقة الربط. يتوفّر نموذجان لهذه العملية الحسابية، ويمكن ضبطهما باستخدام config_internalScorerType:

    • الإعداد التلقائي: أداة تسجيل تستند إلى تعلُّم الآلة وتم تدريبها على إحصاءات طبقة الربط.
    • بديل: أداة تسجيل أقدم تقيّم الأداء استنادًا إلى التغييرات في قيمة RSSI.
  3. اختياري: يمكن لمصنّعي المعدات الأصلية تخصيص منطق تقييم الشبكة المتصلة من خلال تنفيذ تطبيق مسجّل خارجي، ويتم ذلك من خلال تنفيذ واجهة 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.
  4. إذا نفّذت الشركة المصنّعة للجهاز (OEM) أداة تسجيل نقاط خاصة بها كما هو موضّح في الخطوة 3، ستؤجّل خدمة Wi-Fi القرارات المتعلّقة بتقييم الشبكة المتصلة إلى أداة التسجيل الخاصة بالشركة المصنّعة للجهاز.
    إذا لم تنفّذ الشركة المصنّعة للجهاز (OEM) أداة تسجيل خاصة بها، ستستخدم خدمة Wi-Fi النتيجة المحسوبة في الخطوة 2 لتحديد ما إذا كان سيتم التبديل إلى بيانات الجوّال للاتصال بالإنترنت.

الشاشة مقفلة

لا يبدأ إطار العمل عملية تقييم على الشبكة المتصلة، ولكن قد تحدث عملية اختيار الشبكة إذا بدأت عمليات البحث بواسطة مكونات أخرى (مثل خدمات الموقع الجغرافي). يقوم البرنامج الثابت بتقييم جودة الشبكة، وإذا كانت جودة الشبكة سيئة، قد ينتقل البرنامج الثابت إلى شبكة أخرى أو (في النهاية) يفصل الاتصال بالشبكة ويوقظ الجهاز المضيف.

عمليات فحص الاتصال

يتم إجراء عمليات الفحص تلقائيًا استنادًا إلى ما إذا كانت الشاشة قيد التشغيل أو الإيقاف والجهاز متصلاً بشبكة Wi-Fi أو غير متصل بها.

الشاشة قيد التفعيل

يُفعّل إطار العمل قرارات البحث بفواصل زمنية متزايدة عند تشغيل الشاشة. يتم ضبط فواصل قرارات الفحص باستخدام التراكبات config_wifiDisconnectedScanIntervalScheduleSec وconfig_wifiConnectedScanIntervalScheduleSec وconfig_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (وهي عبارة عن مصفوفات من الأعداد الصحيحة). بشكلٍ تلقائي، تتم عمليات الفحص باستخدام فواصل زمنية متزايدة بمعدل أسي تبلغ 20 و40 و80 و160 ثانية، مع إمكانية إجراء عمليات فحص لاحقة بفواصل زمنية تبلغ 160 ثانية (هذه هي القيم التلقائية لهذه التراكبات).

تتم إعادة ضبط فواصل المسح الضوئي ذات التراجع الأسي وإعادة تشغيلها عند 20 ثانية كلما تغيّرت حالة الشاشة، أي عند تفعيل الشاشة أو إيقافها.

(الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث) إذا كانت هناك حاجة إلى فواصل زمنية مختلفة لإجراء عمليات البحث عند وقت التشغيل، يمكن لتطبيق مزوّد بامتيازات من الشركة المصنّعة للجهاز استدعاء واجهة برمجة التطبيقات 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 ديسيبل مللي واط للنطاق 2.4 غيغاهرتز و-77 ديسيبل مللي واط للنطاقين 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 إذا كان الجهاز متصلاً بشبكة أخرى يمكنها الوصول إلى الإنترنت.

تؤدي المكافأة التلقائية التي يتم تقديمها عند استخدام المحتوى المحفوظ مقارنةً بالمحتوى المقترَح والمحتوى الذي لا تفرض تكلفة استخدامه مقارنةً بالمحتوى الذي تفرض تكلفة استخدامه (أي قيم التراكب التلقائية) إلى ترتيب صارم للأولوية للمحتوى المحفوظ والمقترَح والذي تفرض تكلفة استخدامه والذي لا تفرض تكلفة استخدامه:

  1. الشبكات المحفوظة التي لا تفرض تكلفة استخدام
  2. الشبكات المقترَحة التي لا تفرض تكلفة استخدام
  3. الشبكات المحفوظة التي تفرض تكلفة استخدام
  4. الشبكات المقترَحة التي تفرض تكلفة استخدام

وهذا يعني أنّه يتم دائمًا اختيار شبكة محفوظة لا تفرض تكلفة استخدام (مجانًا) قبل اختيار شبكة محفوظة تفرض تكلفة استخدام (مدفوعة). قد تتجاوز مكافأة النقاط المحدّدة مؤخرًا (من قِبل المستخدم أو التطبيق) هذه الأولوية الصارمة.

يمكن أن يتضمّن إطار العمل عدة أدوات لتقييم المرشحين، ولكن يمكن تفعيل أداة واحدة فقط في كل مرة. يمكن استخدام مقاييس التقييم الأخرى (للتحقّق من الخوارزميات البديلة). في نظام التشغيل Android 11، يكون برنامج التسجيل التلقائي ThroughputScorer هو البرنامج التلقائي.

حظر معرّف مجموعة الخدمات (SSID) ومعرّف مجموعة الخدمات الأساسية (BSSID)

قد يحظر الإطار معرّفات SSID أو BSSID، ما يعني أنّه لن يأخذها في الاعتبار عند إجراء عمليات الربط، سواء بشكل مؤقت أو دائم.

حظر معرّف مجموعة الخدمات الأساسية (BSSID)

تعمل ميزة حظر BSSID من خلال الاحتفاظ بعدّادَين لحالات التعذّر، وهما عدّاد حالات التعذّر المتواصلة وعداد حالات التعذّر المتتالية، لكل نوع معيّن من حالات التعذّر (راجِع القائمة أدناه للاطّلاع على أنواع حالات التعذّر). عند حدوث عطل:

  • يتم زيادة عدد محاولات تسجيل الدخول المتعذّرة من النوع المقابل.
  • في حال بلوغ الحدّ الأدنى لعدد مرات حدوث نوع الخطأ هذا:
    • تم حظر معرّف مجموعة الخدمات الأساسية (BSSID).
    • يتم زيادة عدّاد سلسلة المحاولات الفاشلة.

تبدأ مدة حظر معرّف مجموعة الخدمات الأساسية (BSSID) بقيمة أساسية قابلة للضبط. يتم تحديد هذه القيمة الأساسية من خلال الطبقات المتراكبة config_wifiBssidBlocklistMonitorBaseBlockDurationMs أو config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs، وذلك حسب قوة إشارة الاستقبال (RSSI). بعد ذلك، تزداد المدة بشكل كبير إلى أن تصل إلى الحد الأقصى القابل للضبط الذي تحدده طبقة config_wifiBssidBlocklistMonitorFailureStreakCap. تزداد المدة إذا استمرت حالات التعذّر في الظهور على BSSID نفسه. المدة هي المدة الأساسية التي يتم زيادتها بشكل كبير حسب عدد مرات الفشل المتتالية. على سبيل المثال، يعني عدد مرات الفشل المتتالية البالغ 2 أنّ مدة الحظر الأساسية تزيد بمقدار 4 مرات.

تعتمد الحدود الدنيا لحظر معرّف مجموعة الخدمات الأساسية (BSSID) على سبب التعذّر، ويمكن تخصيص كل منها باستخدام التراكبات:

  • يرفض نقطة الوصول الاقتران باستخدام رمز MBO/OCE تعذُّر معالجة STA الجديد: 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_STA
    • REASON_WRONG_PASSWORD
    • REASON_EAP_FAILURE
    • REASON_ASSOCIATION_REJECTION
    • REASON_ASSOCIATION_TIMEOUT
    • REASON_AUTHENTICATION_FAILURE
    • REASON_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 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 5 دقائق مؤقتة
DISABLED_AUTHENTICATION_FAILURE حالات تعذُّر المصادقة الأخرى (أي ليس بسبب كلمة مرور خاطئة أو تعذُّر EAP) 5 5 دقائق مؤقتة
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR حدث خطأ في برنامج الاستخدام المبكر الخاص بمقدّم الخدمة (الخاص). 1 لا ينطبق دائمة
DISABLED_NETWORK_NOT_FOUND تعذّر على طالب المصادقة العثور على شبكة في نتائج الفحص تتطابق مع الشبكة التي طلبها إطار العمل للاتصال (بما في ذلك إمكانات الشبكة). 2 5 دقائق مؤقتة
DISABLED_CONSECUTIVE_FAILURES تعذّر الاتصال بالشبكة خمس مرات أو أكثر على التوالي. يشمل نوع الخطأ لهذه الأخطاء أنواع الأخطاء المدرَجة في هذا الجدول، على سبيل المثال لا الحصر.
5 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، يحاول الجهاز الاتصال بالشبكة الجديدة قبل قطع الاتصال بالشبكة القديمة. يستخدم مسار make-before-break خوارزمية اختيار الشبكة نفسها التي يستخدمها مسار break-before-make (وهو عندما ينقطع اتصال الجهاز بالشبكة القديمة قبل الاتصال بالشبكة الجديدة). إذا اختارت خوارزمية اختيار الشبكة شبكة لا يمكن التبديل إليها باستخدام make-before-break، سيعود الجهاز تلقائيًا إلى break-before-make.

الاتصال بالشبكة المقيدة والإنترنت في الوقت نفسه

في حال تفعيل وظيفة الاتصال المتزامن بشبكة مقيّدة والإنترنت، يمكن للجهاز الاتصال بشبكة Wi-Fi ثانوية مقيّدة لا تتوفّر إلا لتطبيقات محدّدة تم ضبطها من قِبل الشركة المصنّعة للجهاز. تتوفّر تعليمات لمصنّعي الأجهزة حول كيفية ضبط هذا الإعداد في مقالة الاتصال المقيّد والمتزامن بالإنترنت.

عندما ترصد خوارزمية اختيار الشبكة نتائج بحث تطابق الاقتراح المدفوع أو الخاص من الشركة المصنّعة للجهاز الأصلي، يتم الاتصال تلقائيًا بهذه الشبكة كشبكة ثانية. يتم عادةً اختيار الشبكة لشبكة Wi-Fi الأساسية (التي توفّر اتصالاً بالإنترنت للتطبيقات العادية) بشكل متزامن.

الأسئلة الشائعة

  1. هل تحظى الشبكات الآمنة دائمًا بالأولوية على الشبكات المفتوحة؟

    لا، فالمقارنة بين الشبكات المحفوظة والشبكات المقترَحة، والشبكات التي تفرض تكلفة استخدام والشبكات التي لا تفرض تكلفة استخدام، هي فئات أساسية يتم تقييم الشبكات فيها. ضمن كل فئة، تحظى الشبكات الآمنة ببعض الأولوية على الشبكات المفتوحة، ولكن يتم إعطاء وزن أكبر بكثير لجودة الاتصال.

    والسبب هو أنّ أمان بيانات المستخدمين الفعلي يتم توفيره من خلال التشفير التام بين الأطراف (مثل بروتوكول أمان طبقة النقل). لا تشفّر الشبكات الآمنة سوى الجزء الأول من عملية الاتصال، وحتى في هذه الحالة، لا توفّر الشبكات التي تستخدم مفاتيح مشترَكة مسبقًا قدرًا كبيرًا من الخصوصية.

  2. لماذا يتم منح الأولوية للشبكات المحفوظة على الشبكات المقترَحة؟

    تُمنح الأولوية للشبكات المجانية (لا تفرض تكلفة استخدام) المحفوظة على الشبكات المجانية المقترَحة، كما تُمنح الأولوية للشبكات التي تفرض تكلفة استخدام المحفوظة على الشبكات التي تفرض تكلفة استخدام المقترَحة.

    تُمنح الشبكات المحفوظة الأولوية على الشبكات المقترَحة لأنّها الشبكات التي أضافها المستخدم إلى الجهاز بشكل صريح. ويشير ذلك إلى تفضيل الاتصال بهذه الشبكات عند الإمكان.

    يُرجى العِلم أنّه يمكن للمستخدمين إيقاف سلوك الاتصال التلقائي لشبكات فردية محفوظة، أي يمكنهم الإشارة إلى أنّه سيتم استخدام هذه الشبكات يدويًا فقط ولن يأخذها الجهاز في الاعتبار تلقائيًا.

  3. هل يمكنني تغيير ترتيب الأولوية الصارمة أو إزالته تمامًا؟

    يمكنك تعديل قرارات اختيار الشبكة من خلال تعديل تراكبات المكافآت المدرَجة في الأقسام السابقة. ومع ذلك، لا يُنصح بتغيير القيم التلقائية، لأنّه تم اختيارها بعد دراسة متأنية لعدة حالات استخدام.