اختيار شبكة أندرويد واي فاي

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

عمر الاتصال التلقائي

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

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

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

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

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

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

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

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

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

        • مؤشر RSSI أعلى من عتبة 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 ، التي تتجاوز النظام وتنشئ شبكة LAN بدون إنترنت، باستثناء الأجهزة التي تدعم المحطات المتزامنة المزدوجة.

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

يقوم إطار عمل 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 ثانية عندما تتغير حالة الشاشة، أي عند تشغيل الشاشة أو إيقاف تشغيلها.

(Android 13+) إذا كانت هناك حاجة إلى فترات فحص مختلفة في وقت التشغيل، فيمكن لتطبيق OEM المميز استدعاء WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) API لتعيين جدول فحص الشاشة أثناء التشغيل ديناميكيًا.

يعتمد اتخاذ القرار بتنفيذ عملية فحص أو تخطيها على ما إذا كان اتصال الشبكة الحالي جيدًا بما يكفي لتخطي عملية الفحص . يعد الاتصال جيدًا بما يكفي لتخطي المسح في حالة استيفاء أي من المتطلبات التالية:

  • الجهاز متصل باتصال تسجيل عبر الإنترنت (OSU).
  • تتدفق حركة مرور كافية عبر الاتصال (انظر حدود حركة المرور أدناه).
  • مؤشر RSSI أعلى من عتبة 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 تراكبات reshold6ghz.
  • تزيد حركة المرور (الإرسال أو الاستقبال) عن 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 ثانية (مضاعف 3x ثابت للتراكب) لعمليات الفحص اللاحقة. في حالة التنقل العالي، يكون الفاصل الزمني 20 ثانية لعمليات الفحص الثلاثة الأولى (يتم التحكم فيها بواسطة تراكب config_wifiMovingPnoScanIntervalMillis )، و60 ثانية (مضاعف ثابت للتراكب 3x) لعمليات الفحص اللاحقة.

مرشحي الشبكة

يبحث مرشحو الشبكة عن تكوينات ( WifiConfiguration ) أو يقومون بإنشائها للشبكات التالية:

  • متاحة حاليًا (استنادًا إلى نتائج الفحص) أو الشبكة المتصلة حاليًا (والتي تكون مفقودة أحيانًا من نتائج الفحص غير المستقرة).
  • لديك الحد الأدنى من آر إس إس آي. الحد الأدنى لـ 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 تراكبات عتبة 6 جيجا هرتز.
  • غير محظور، على سبيل المثال، بسبب فشل الاتصال السابق.
  • لا تشير الشبكة إلى أنها غير قابلة للاستخدام (على سبيل المثال، استخدام MBO/OCE).
  • يمكن أن ترتبط باستخدام بيانات الاعتماد المتوفرة على الجهاز.

يتم استخدام ترشيحات الشبكة التالية:

  • مُرشح الشبكة المحفوظة: يقوم بتقييم جميع الشبكات المحفوظة (بما في ذلك اشتراكات Passpoint المحفوظة).
  • مُرشح الشبكة المقترح: يقوم بتقييم جميع الشبكات التي توفرها التطبيقات باستخدام Suggestion API (بما في ذلك اشتراكات Passpoint المقترحة).
  • مُرشح الشبكة المُسجل خارجيًا: آلية OEM لتوفير خيارات الاتصال بالشبكة للجهاز. لمزيد من المعلومات، راجع موفر تصنيف الشبكة الخارجية .

هدافي المرشحين

يقوم الهدافون المرشحون بتقييم وتقديم درجة لكل مرشح. تعتمد نتيجة ThroughputScorer (المسجل الافتراضي) على ما يلي:

  • يتم حساب النتيجة الأساسية بناءً على RSSI حيث يتم تحديد 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_wifi تراكبات 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 أو تراكب FailureStreakCap). وتزداد المدة في حالة حدوث حالات فشل بشكل مستمر على نفس معرف BSSID. المدة هي المدة الأساسية التي تمت زيادتها بشكل كبير بواسطة سلسلة الفشل، أي أن سلسلة الفشل التي تبلغ 2 تعني مدة الكتلة الأساسية 4x.

تعتمد حدود حظر BSSID على سبب الفشل ويمكن تخصيص كل منها باستخدام التراكبات:

  • ترفض AP الاقتران باستخدام MBO/OCE غير قادر على التعامل مع رمز STA الجديد : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold .
  • فشل التحقق من صحة الإنترنت من خلال هذه الشبكة: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold .
  • رمز فشل مصادقة كلمة المرور غير صحيح: config_wifiBssidBlocklistMonitorWrongPasswordThreshold .
  • رمز فشل مصادقة فشل EAP لشبكات 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 (يتم المسح مشروطًا فقط إذا كانت آخر مرة تم فيها اتصال الجهاز بمعرف BSSID هذا قبل أكثر من 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 فشل EAP (خاص) خاص بالموفر. 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 المحددة أثناء عملية التحديد التلقائي وكانت الشبكة المحددة من قبل المستخدم متاحة، فإن خوارزمية اختيار اتصال المستخدم تتجاوز التحديد مع الشبكة المحددة من قبل المستخدم إذا تم استيفاء الشروط التالية:

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

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

محطات متزامنة مزدوجة

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

صنع قبل الاستراحة

إذا تم تمكين وظيفة make-before-break ، فسيحاول الجهاز الاتصال بالشبكة الجديدة قبل قطع الاتصال بالشبكة القديمة. يستخدم تدفق "الإنشاء قبل القطع" نفس خوارزمية تحديد الشبكة مثل تبديل الشبكة قبل القطع (والذي يحدث عندما ينقطع اتصال الجهاز بالشبكة القديمة قبل الاتصال بالشبكة الجديدة). إذا اختارت خوارزمية اختيار الشبكة شبكة لا يمكن التبديل بينها باستخدام الإنشاء قبل الاستراحة، فسيعود الجهاز تلقائيًا إلى الإنشاء قبل الاستراحة.

المتزامنة المقيدة والاتصال بالإنترنت

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

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

أسئلة وأجوبة (FAQ)

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

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

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

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

    يتم إعطاء الأولوية للشبكات المجانية (غير المقاسة) المحفوظة على الشبكات المجانية المقترحة ويتم إعطاء الأولوية للشبكات المقاسة المحفوظة على الشبكات المقاسة المقترحة.

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

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

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

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