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

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

مدة الاتصال التلقائي

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

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

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

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

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

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

    • إذا كان الجهاز متصلاً بشبكة Wi-Fi، يُقيّم الإطار المرجعي ما إذا كانت الشبكة الحالية جيدة بما يكفي لتخطّي مرحلة اختيار الشبكة.

      يتم تعريف الشبكة على أنّها جيدة بما يكفي لتخطّي اختيار الشبكة في حال استيفاء أيٍّ من المتطلبات التالية:

      • انقضاء أقل من 10 ثوانٍ على اختيار الشبكة الأخير
      • ربط المستخدم بالشبكة يدويًا مؤخرًا (حيث يمكن ضبط "مؤخرًا" باستخدام تراكب config_wifiSufficientDurationAfterUserSelectionMilliseconds )
      • الجهاز متصل بموقع إلكتروني لتسجيل الاشتراك (OSU).
      • استيفاء جميع المتطلبات التالية:

        • إذا كان مؤشر RSSI أعلى من الحدّ الأدنى المطلوب له أو إذا كانت هناك حركة بيانات كافية على الاتصال (اطّلِع على عمليات البحث التي يتم إجراؤها عندما تكون الشاشة مفعّلة للحصول على معلومات عن حدود 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 على نتائج المسح التي تكون متباعدة بدرجة كافية في الوقت).

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

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

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

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

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

يُرجى العِلم أنّه يتم إيقاف الاتصال التلقائي بالشبكة عندما يستخدم أحد التطبيقات واجهة برمجة التطبيقات Wi-Fi Network Request API، التي تلغي عمل النظام وتُنشئ شبكة محلية بدون اتصال بالإنترنت، باستثناء الأجهزة التي تتوافق مع محطتَين متزامنتَين.

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

يُقيّم إطار عمل 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 وإحصاءات 👏طبقة الربط.

  3. تُرسِل خدمة Wi-Fi النتيجة إلى خدمة الاتصال التي تستخدم النتيجة لتحديد ما إذا كان سيتم الاتصال بشبكة Wi-Fi أو نوع شبكة آخر متاح، مثل شبكة الجوّال.

الشاشة مقفلة

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

عمليات فحص إمكانية الاتصال

يتم إجراء عمليات البحث تلقائيًا استنادًا إلى ما إذا كانت شاشة الجهاز مفعّلة أو كانت الشاشة مُطفأة والجهاز متصلاً بشبكة Wi-Fi أو كانت الشاشة مُطفأة والجهاز غير متصل بشبكة 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.
  • إذا كانت عدد الحِزم في الثانية (pps) عند الإرسال أو الاستقبال أعلى من 16 حزمة ، ويكون ذلك مضبوطًا باستخدام تراكب config_wifiFrameworkMinPacketPerSecondActiveTraffic

عندما يكون الجهاز متصلاً والشاشة مفعَّلة يرصد نظام التسجيل المتصل بشكل دوري جودة شبكة Wi-Fi من خلال مراقبة إشارات مثل RSSI وعدد الحِزم المنقولة. إذا تبيّن أنّ جودة شبكة Wi-Fi سيئة (على النحو المحدّد أدناه) وكان الجهاز متوافقًا مع محطتَين متزامنتَين، سيتم بدء عملية فحص. يمكن استخدام التراكب config_wifiLowConnectedScoreThresholdToTriggerScanForMbb لضبط الحدّ الأدنى للنتيجة الذي يؤدي إلى بدء عملية الفحص. يمكن استخدام تراكب config_wifiLowConnectedScoreScanPeriodSeconds لتحديد مدّة عمليات الفحص هذه.

الشاشة مُطفأة والجهاز متصل بشبكة Wi-Fi

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

الشاشة مُطفأة وغير متصلة بشبكة Wi-Fi (حالة عدم الاتصال)

عندما تكون الشاشة مطفأة وشبكة Wi-Fi غير متصلة، يُجري البرنامج الثابت عمليات بحث PNO عن عناوين SSID. يضبط الإطار المرجعي البرامج الثابتة باستخدام قائمة بمعرّفات SSID المطلوب البحث عنها وقائمة بالقنوات التي سيتم البحث فيها. في حال العثور على معرّف SSID تم ضبطه، توقظ البرامج الثابتة الإطار.

يضبط إطار العمل أيضًا الفاصل الزمني الذي سيُجري فيه البرنامج الثابت عمليات بحث PNO، وذلك باستخدام حالة تنقّل الجهاز لاختيار فواصل زمنية مختلفة للبحث. في حالة التنقّل المنخفض (الجهاز ثابت)، يكون الفاصل الزمني 60 ثانية للعمليات الثلاث الأولى للمسح (يتم التحكّم فيها من خلال التراكب config_wifiStationaryPnoScanIntervalMillis)، و180 ثانية (مُضاعِف ثابت هو 3 مرّات من التراكب) للمسحات اللاحقة. في حالة التنقّل المكثّف، يكون الفاصل الزمني 20 ثانية لأول ثلاث عمليات مسح ضوئي (يتم التحكّم فيه باستخدام التراكب config_wifiMovingPnoScanIntervalMillis)، و60 ثانية (مُضاعِف ثابت 3x للتراكب) لإجراء عمليات المسح الضوئي اللاحقة.

مُرشِحو الشبكة

يعثر مُعيّنو الشبكات على الإعدادات أو ينشئونها (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) نفسه. المدّة هي المدّة الأساسية التي تزداد بشكلٍ كبير بسبب سلسلتَي حالات الفشل، أي أنّ سلسلة حالات الفشل التي تبلغ مرّتَين تعني مدّة الحظر الأساسية مضروبةً في 4.

تعتمد الحدود القصوى لحظر معرّف BSSID على سبب الخطأ، ويمكن تخصيص كل منها باستخدام التراكبات:

  • يرفض نقطة الوصول الاقتران باستخدام رمز MBO/OCE تعذُّر معالجة محطة STA الجديدة: config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold.
  • تعذّر التحقّق من الإنترنت من خلال هذه الشبكة: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold.
  • رمز الخطأ الناتج عن تعذُّر المصادقة باستخدام كلمة المرور غير الصحيحة: config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • رمز خطأ تعذُّر المصادقة في بروتوكول المصادقة القابلة للتوسيع (EAP) لشبكات EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • رفض الربط، وحالات الرفض العامة الأخرى للربط: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • مهلة الربط: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold
  • تعذّرت المصادقة، أو تعذّرت المصادقة بشكل عام في حالات أخرى: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • تعذّر إعداد بروتوكول DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold.
  • انقطاع غير طبيعي للاتصال، انقطع اتصال الجهاز بالشبكة خلال فترة قصيرة جدًا بعد الاتصال: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. يمكن ضبط نافذة الوقت باستخدام config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.

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

يتم محو معرّف BSSID من قائمة الحظر في الحالات التالية:

  • تم تفعيل شبكة Wi-Fi: تتم إزالة جميع عناوين BSSID من قائمة الحظر.
  • ينقر المستخدم على شبكة في أداة اختيار Wi-Fi: تتم إزالة جميع عناوين BSSID للشبكة التي يختارها المستخدم من قائمة الحظر.
  • مهلة الحظر: تتم إزالة عناوين BSSID من القائمة المحظورة عند انتهاء مدة الحظر.
  • إعادة التشغيل: يتم محو جميع القوائم المحظورة.
  • تمّت إزالة الشبكة: تتم إزالة جميع معرّفات BSSID المرتبطة بهذه الشبكة من قائمة الحظر.

شروط إعادة ضبط عدادات الإخفاقات والنتائج المتتالية:

  • إعادة التشغيل: إعادة ضبط جميع عناوين BSSID
  • تمّت إزالة الشبكة: تتم إعادة ضبط معرّفات مجموعات الخدمات الأساسية المرتبطة بالشبكة.
  • نجاح الاتصال بالمستوى الثاني: إعادة ضبط رموز الخطأ التالية

    • 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 ٥ دقائق مؤقتة
DISABLED_NO_INTERNET_TEMPORARY تعذّر التحقّق من الشبكة، ولكن يصرّ المستخدم على مواصلة الاتصال بهذه الشبكة في المستقبل 1 10 دقائق مؤقتة
DISABLED_AUTHENTICATION_NO_CREDENTIALS لا يملك طلب الحصول على البيانات بيانات اعتماد للاتصال بالشبكة 1 NA دائم
DISABLED_NO_INTERNET_PERMANENT الإعداد التلقائي في حال تعذُّر التحقّق من الشبكة 1 NA دائم
DISABLED_BY_WIFI_MANAGER غير مستخدَمة أو متوقفة نهائيًا 1 NA دائم
DISABLED_BY_WRONG_PASSWORD كلمة المرور غير صحيحة، ولم يتم أبدًا الاتصال بهذه الشبكة بنجاح. 1 NA دائم
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION تعذُّر EAP عندما لا تكون شريحة SIM مشتركة 1 NA دائم
DISABLED_ASSOCIATION_REJECTION حالات تعذُّر رفض الربط 5 ٥ دقائق مؤقتة
DISABLED_AUTHENTICATION_FAILURE حالات تعذُّر المصادقة الأخرى (أي ليس بسبب كلمة مرور غير صحيحة أو تعذُّر EAP) 5 ٥ دقائق مؤقتة
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR تعذّر استخدام بروتوكول EAP (خاص) خاص بمقدّم الخدمة. 1 NA دائم
DISABLED_NETWORK_NOT_FOUND تعذّر على طلب الاتصال العثور على شبكة في نتائج البحث تتطابق مع الشبكة المطلوبة من إطار العمل للاتصال (بما في ذلك ميزات الشبكة). 2 ٥ دقائق مؤقتة
DISABLED_CONSECUTIVE_FAILURES تعذّر الاتصال بالشبكة خمس مرات أو أكثر على التوالي. يشمل نوع الصعوبة لهذه الأخطاء، على سبيل المثال لا الحصر، أنواع الصعوبات المُدرَجة في هذا الجدول.
5 ٥ دقائق مؤقتة

تتم إعادة تفعيل شبكة تم إيقافها مؤقتًا في الحالات التالية:

  • انتهت مدة إيقاف الميزة.
  • يختار المستخدم الشبكة التي يريد الاتصال بها يدويًا.
  • يشغِّل المستخدم شبكة Wi-Fi.
  • تتم إعادة تشغيل النظام.
  • تم إيقاف الشبكة عند مستوى منخفض جدًا لمؤشر RSSI، ولكن تم رصد الشبكة مجددًا في وقت لاحق عند مستوى معتدل أو أعلى لمؤشر RSSI.

تتم إعادة تفعيل شبكة تم إيقافها نهائيًا في الحالات التالية:

  • يختار المستخدم الشبكة التي يريد الاتصال بها يدويًا.

تتم إعادة ضبط عدادات الأعطال لشبكة معيّنة في الحالات التالية:

  • تتم إزالة الشبكة.
  • تم ربط الجهاز بالشبكة بنجاح.
  • تم إعادة تفعيل الشبكة بعد انتهاء مهلة الإيقاف.
  • يختار المستخدم الشبكة التي يريد الاتصال بها يدويًا.
  • تتم إعادة تشغيل النظام.

بطاقات الأداء

تُسجِّل بطاقات النتائج، التي تم طرحها في Android 10، إحصاءات عن عناوين MAC الخاصة بنقاط الاتصال على الجهاز. يتم الاحتفاظ ببطاقات النتائج باستخدام خدمة IpMemoryStore.

لا يتم استخدام بطاقات الأداء في عملية اختيار الشبكة في Android 11.

خيار ربط المستخدم

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

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

  • كانت شبكة اختيار المستخدم متصلة بالإنترنت في آخر مرة تم استخدامها
  • يتمتع خيار اتصال المستخدم بقوة إشارة لا تقل عن تلك التي كانت عليه عند تحديده في الأصل مع هامش خطأ. يمكن ضبط هامش الخطأ باستخدام التراكب config_wifiEstimateRssiErrorMarginDb.

تظل شبكة اختيار المستخدم متصلة بعد إعادة التشغيل. يعمل خيار اتصال المستخدم مع الشبكات المحفوظة وشبكات نقطة المرور وشبكات الاقتراحات.

محطتان متزامنتان

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

الإنشاء قبل الانهيار

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

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

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

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

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

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

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

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

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

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

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

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

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

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