Pemilihan Jaringan Wi-Fi Android

Halaman ini menguraikan algoritma dan prosedur yang digunakan di Android 12 untuk memilih dan beralih antar jaringan Wi-Fi. Android terus mengevaluasi kualitas jaringan yang terhubung dan menilai kualitas jaringan yang tersedia.

Kehidupan koneksi otomatis

Ini menjelaskan proses bagaimana perangkat Android menilai dan menghubungkan ke jaringan Wi-Fi yang tersedia.

  1. Perangkat memindai jaringan yang tersedia dengan salah satu cara berikut, bergantung pada apakah layar aktif atau nonaktif.

    • Layar aktif (tersambung): Subsistem konektivitas Android secara rutin mengevaluasi apakah koneksi saat ini cukup baik untuk melewati pemindaian (seperti yang didefinisikan dalam pemindaian layar ). Jika koneksi tidak cukup baik untuk melewati pemindaian, subsistem konektivitas akan memicu pemindaian untuk mendeteksi jaringan yang tersedia. Pemindaian ini juga dapat dipicu oleh komponen sistem lain seperti sistem lokasi atau aplikasi (termasuk aplikasi Pengaturan).
    • Layar aktif (terputus): Subsistem konektivitas Android mengeluarkan pemindaian berkala mengikuti jadwal backoff eksponensial. Modul mengevaluasi semua hasil pemindaian yang diterima dan mencoba memilih jaringan terbaik untuk dihubungkan.
    • Layar mati (terputus): CPU host memprogram firmware dengan daftar jaringan pilihan menggunakan pemindaian offload jaringan pilihan (PNO) segera setelah layar mati. Firmware membangunkan host jika menemukan jaringan pilihan. AOSP mengasumsikan bahwa PNO didukung pada perangkat.

    Metode WifiManager#allowAutojoinGlobal(boolean) dapat digunakan untuk menonaktifkan koneksi otomatis. Ini adalah API istimewa yang dapat digunakan oleh produsen perangkat dalam keadaan terbatas (misalnya, perangkat non-seluler yang telah dikonfigurasi sebelumnya).

    Jika perangkat terhubung dan overlay config_wifi_framework_enable_associated_network_selection diatur ke false , tidak ada pemindaian konektivitas yang dilakukan dan hasil pemindaian tidak memicu pemilihan jaringan. Pengaturan ini tidak berpengaruh ketika perangkat terputus, artinya pemindaian konektivitas dan pemilihan jaringan tetap terjadi.

  2. Hasil pemindaian dievaluasi.

    • Jika perangkat tersambung ke jaringan Wi-Fi, kerangka kerja mengevaluasi apakah jaringan saat ini cukup baik untuk melewati pemilihan jaringan .

      Suatu jaringan didefinisikan sebagai cukup baik untuk melewati pemilihan jaringan jika salah satu persyaratan berikut terpenuhi:

      • Kurang dari 10 detik telah berlalu sejak pemilihan jaringan terakhir.
      • Pengguna baru-baru ini terhubung secara manual ke jaringan (yang baru-baru ini dapat dikonfigurasi menggunakan overlay config_wifiSufficientDurationAfterUserSelectionMilliseconds ).
      • Perangkat terhubung ke koneksi pendaftaran online (OSU).
      • Semua persyaratan berikut terpenuhi:

        • RSSI berada di atas ambang batas RSSI yang disyaratkan atau lalu lintas yang mengalir melalui koneksi mencukupi (lihat pemindaian layar untuk RSSI dan ambang batas lalu lintas).
        • Jaringan divalidasi (terhubung ke internet) atau disetujui pengguna untuk digunakan tanpa akses internet.
        • Jaringan tidak diukur.
    • Jika jaringan cukup baik untuk melewati pemilihan jaringan , tidak ada tindakan lebih lanjut yang diambil.

    • Jika jaringan Wi-Fi yang tersambung tidak cukup baik atau jika perangkat tidak tersambung ke jaringan, kerangka kerja akan memanggil nominator jaringan untuk membuat daftar kandidat jaringan Wi-Fi yang akan disambungkan berdasarkan hasil pemindaian yang difilter . Nominator jaringan menemukan konfigurasi Wi-Fi yang ada atau membuat konfigurasi baru untuk jaringan kandidat.

    • Hasil pemindaian difilter untuk menghapus BSSID yang memiliki RSSI di bawah entri RSSI (dapat dikonfigurasi menggunakan config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz , dan config_wifiFrameworkScoreEntryRssiThreshold6ghz overlay). Selain itu, BSSID yang diblokir difilter. BSSID dapat diblokir berdasarkan kegagalan koneksi yang berulang, seringnya terputus, dan permintaan eksplisit dari AP untuk tidak mencoba asosiasi selama jangka waktu tertentu (MBO-OCE). Pemblokiran BSSID dijelaskan di bawah ini dalam pemblokiran SSID dan BSSID .

    • Saat perangkat bergerak dengan cepat, hasil pemindaian secara opsional difilter lebih lanjut untuk menghapus BSSID yang RSSI-nya bervariasi dengan cepat (indikasi bahwa perangkat tersebut tidak bergerak bersama perangkat). Pengoptimalan ini dapat dikonfigurasi menggunakan config_wifiHighMovementNetworkSelectionOptimizationEnabled (mengaktifkan/menonaktifkan pengoptimalan), dan overlay config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs dan config_wifiHighMovementNetworkSelectionOptimizationRssiDelta , yang mengonfigurasi persyaratan stabilitas pada hasil pemindaian (perubahan RSSI pada hasil pemindaian dengan jarak waktu yang cukup).

  3. Kerangka kerja ini menjalankan pencetak skor kandidat untuk menghasilkan skor untuk setiap kandidat pengidentifikasi set layanan (SSID). Kandidat SSID dapat mencakup beberapa kandidat pengidentifikasi set layanan dasar (BSSID) (yang dihasilkan oleh nominator jaringan). Kandidat dengan skor tertinggi adalah kandidat yang menang .

  4. Kerangka kerja ini menjalankan algoritme pilihan koneksi pengguna , yang mungkin menjadikan jaringan yang dipilih pengguna sebagai kandidat pemenang baru alih-alih menggunakan kandidat pemenang dari pencetak kandidat.

  5. Kerangka kerja ini menentukan apakah kandidat pemenang cocok dengan jaringan yang terhubung saat ini. Untuk dianggap cocok, salah satu hal berikut harus dipenuhi:

    • Kandidat pemenang dan jaringan Wi-Fi yang terhubung memiliki BSSID yang sama.
    • Jika roaming firmware tersedia (termasuk kemampuan daftar hitam BSSID), kandidat pemenang dan jaringan yang terhubung memiliki SSID dan jenis keamanan yang sama.

    Jika kandidat pemenang cocok dengan jaringan yang terhubung saat ini, tidak ada tindakan lebih lanjut yang diambil. Jika kandidat pemenang tidak cocok dengan jaringan, perangkat tersebut dikaitkan dengan kandidat pemenang.

Perlu diperhatikan bahwa koneksi jaringan otomatis dinonaktifkan saat aplikasi menggunakan API Permintaan Jaringan Wi-Fi , yang mengambil alih sistem dan membuat LAN tanpa internet, kecuali pada perangkat yang mendukung stasiun ganda secara bersamaan.

Evaluasi jaringan yang terhubung

Kerangka kerja atau firmware Android secara berkala mengevaluasi kualitas jaringan yang terhubung. Bagian ini menjelaskan bagaimana jaringan yang terhubung dievaluasi saat layar aktif atau nonaktif.

Evaluasi ini dilakukan selain pemilihan jaringan yang dibahas di atas.

Layar menyala

Kerangka kerja Android mengevaluasi jaringan yang terhubung dengan cara berikut:

  1. Layanan Wi-Fi melakukan polling RSSI dan statistik lapisan tautan setiap 3 detik (dapat dikonfigurasi menggunakan overlay config_wifiPollRssiIntervalMilliseconds ).

    Jika penyesuaian interval dinamis diaktifkan menggunakan overlay config_wifiAdjustPollRssiIntervalEnabled , interval polling berubah secara dinamis berdasarkan status mobilitas perangkat dan RSSI.

    • Interval polling diperpanjang hingga 6 detik (dikonfigurasi oleh overlay config_wifiPollRssiLongIntervalMilliseconds ) ketika perangkat diam dan RSSI di atas -68 dBm (dikonfigurasi oleh overlay config_wifiClientRssiMonitorThresholdDbm dan config_wifiClientRssiMonitorHysteresisDb ).
    • Interval polling dikurangi kembali menjadi 3 detik (dikonfigurasi oleh overlay config_wifiPollRssiIntervalMilliseconds ) ketika perangkat non-stasioner atau RSSI di bawah -73 dBm (dikonfigurasi oleh overlay config_wifiClientRssiMonitorThresholdDbm ).
  2. Layanan Wi-Fi menghitung skor terhubung berdasarkan RSSI dan statistik lapisan tautan.

  3. Layanan Wi-Fi meneruskan skor ke layanan konektivitas, yang menggunakan skor tersebut untuk menentukan apakah akan tersambung ke jaringan Wi-Fi atau ke jenis jaringan lain yang tersedia, seperti jaringan seluler.

Layar mati

Kerangka kerja ini tidak memulai evaluasi pada jaringan yang terhubung, namun proses pemilihan jaringan mungkin masih terjadi jika pemindaian dimulai oleh komponen lain (misalnya, layanan lokasi). Firmware mengevaluasi kualitas jaringan dan jika kualitas jaringan buruk, firmware mungkin berkeliaran atau (pada akhirnya) memisahkan diri dari jaringan dan membangunkan host.

Pemindaian konektivitas

Pemindaian dilakukan secara otomatis berdasarkan apakah layar perangkat menyala, layar mati dan tersambung ke Wi-Fi, atau layar mati dan tidak tersambung ke Wi-Fi.

Layar menyala

Kerangka kerja ini memicu keputusan pemindaian dengan interval yang semakin meningkat saat layar dihidupkan. Interval keputusan pemindaian dikonfigurasi dengan overlay config_wifiDisconnectedScanIntervalScheduleSec , config_wifiConnectedScanIntervalScheduleSec , dan config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (yang merupakan array bilangan bulat). Secara default, pemindaian terjadi menggunakan interval backoff eksponensial 20, 40, 80, dan 160 detik, dengan pemindaian berikutnya mungkin dilakukan pada interval 160 detik (ini adalah nilai default overlay di atas).

Interval pemindaian backoff eksponensial diatur ulang dan dimulai ulang pada 20 detik setiap kali status layar berubah, yaitu saat layar diaktifkan atau dinonaktifkan.

(Android 13+) Jika interval pemindaian yang berbeda diperlukan saat runtime, aplikasi dengan hak istimewa OEM dapat memanggil API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) untuk menyetel jadwal pemindaian screen-on secara dinamis.

Keputusan apakah akan menjalankan atau melewatkan pemindaian didasarkan pada apakah koneksi jaringan saat ini cukup baik untuk melewatkan pemindaian . Koneksi cukup baik untuk melewati pemindaian jika salah satu persyaratan berikut terpenuhi:

  • Perangkat terhubung ke koneksi pendaftaran online (OSU).
  • Lalu lintas yang cukup mengalir melalui koneksi (lihat ambang batas lalu lintas di bawah).
  • RSSI berada di atas ambang RSSI yang diperlukan (lihat ambang RSSI di bawah), dan pemilihan jaringan dilakukan baru-baru ini (10 menit secara default tetapi dapat dikonfigurasi menggunakan overlay config_wifiConnectedHighRssiScanMinimumWindowSizeSec ), dan jaringan divalidasi (terhubung ke internet) atau pengguna -disetujui untuk digunakan tanpa akses internet.

RSSI dan ambang lalu lintas adalah:

  • RSSI di atas -73 dBm untuk pita 2.4 GHz, dikonfigurasi dengan config_wifi_framework_wifi_score_low_rssi_threshold_24GHz overlay, atau -70 dbm _iFaF_WIF_COREF_CORE_COREF_CORE_CHAM_CORE_CHAM_CORE_CHAM_SCORE_CORECHAM, dikonfigurasi dengan config_wifi_framework_wifi_score_low_rssi_threshold_5GHz config_wifiFrameworkScoreLowRssiThreshold6ghz overlays.
  • Lalu lintas (mengirim atau menerima) di atas 16 paket per detik (pps) yang dikonfigurasi dengan overlay config_wifiFrameworkMinPacketPerSecondActiveTraffic .

Saat perangkat terhubung dan layar menyala. Pencetak skor yang terhubung secara berkala memantau kualitas Wi-Fi dengan melihat sinyal seperti RSSI dan jumlah paket yang ditransfer. Jika kualitas Wi-Fi dianggap buruk (seperti yang ditentukan di bawah) dan perangkat mendukung stasiun ganda secara bersamaan, maka pemindaian akan terpicu. Hamparan config_wifiLowConnectedScoreThresholdToTriggerScanForMbb dapat digunakan untuk mengonfigurasi ambang skor yang memicu pemindaian. Hamparan config_wifiLowConnectedScoreScanPeriodSeconds dapat digunakan untuk mengonfigurasi periode pemindaian ini.

Layar mati dan terhubung ke Wi-Fi

Saat layar mati dan perangkat terhubung ke jaringan Wi-Fi, firmware (SoC Wi-Fi) melakukan pemindaian roaming. Kerangka kerja tidak melakukan pemindaian apa pun saat layar mati.

Layar mati dan tidak terhubung ke Wi-Fi (keadaan terputus)

Saat layar mati dan Wi-Fi terputus, firmware melakukan pemindaian PNO untuk SSID. Kerangka kerja ini mengonfigurasi firmware dengan daftar SSID yang akan dipindai dan daftar saluran yang akan dipindai. Jika SSID yang dikonfigurasi ditemukan, firmware akan membangunkan kerangka kerja.

Kerangka kerja ini juga mengonfigurasi interval firmware untuk melakukan pemindaian PNO, menggunakan status mobilitas perangkat untuk memilih interval pemindaian yang berbeda. Dalam keadaan mobilitas rendah (perangkat tidak bergerak) intervalnya adalah 60 detik untuk tiga pemindaian pertama (dikontrol oleh overlay config_wifiStationaryPnoScanIntervalMillis ), dan 180 detik (pengganda tetap 3x overlay) untuk pemindaian berikutnya. Dalam keadaan mobilitas tinggi, intervalnya adalah 20 detik untuk tiga pemindaian pertama (dikontrol oleh overlay config_wifiMovingPnoScanIntervalMillis ), dan 60 (pengganda tetap 3x overlay) detik untuk pemindaian berikutnya.

Nominator jaringan

Nominator jaringan menemukan atau membuat konfigurasi ( WifiConfiguration ) untuk jaringan yang:

  • Saat ini tersedia (berdasarkan hasil pemindaian) atau jaringan yang terhubung saat ini (yang terkadang hilang dari hasil pemindaian yang tidak stabil).
  • Memiliki RSSI minimal. RSSI minimal adalah -80 dBm untuk pita 2,4 GHz dan -77 dBm untuk pita 5 GHz dan 6 GHz, dapat dikonfigurasi menggunakan config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz , dan config_wifiFrameworkScoreEntryRssiThreshold6ghz overlay s.
  • Tidak diblokir, misalnya karena kegagalan koneksi sebelumnya.
  • Jaringan tidak menunjukkan bahwa itu tidak dapat digunakan (misalnya, menggunakan MBO/OCE).
  • Dapat dikaitkan dengan penggunaan kredensial yang tersedia di perangkat.

Nominator jaringan berikut digunakan:

  • Nominator jaringan tersimpan: Mengevaluasi semua jaringan tersimpan (termasuk langganan Passpoint yang disimpan).
  • Nominator jaringan yang disarankan: Mengevaluasi semua jaringan yang disediakan oleh aplikasi menggunakan API Saran (termasuk langganan Passpoint yang disarankan).
  • Nominator jaringan yang diberi skor eksternal: Mekanisme OEM untuk menyediakan opsi konektivitas jaringan ke perangkat. Untuk informasi lebih lanjut, lihat Penyedia peringkat jaringan eksternal .

Pencetak gol kandidat

Pencetak skor kandidat mengevaluasi dan memberikan skor untuk setiap kandidat. Skor untuk ThroughputScorer (pencetak skor default) didasarkan pada hal berikut:

  • Skor dasar dihitung berdasarkan RSSI dengan RSSI dibatasi pada -73 dBm untuk pita 2,4 GHz atau -70 dBm untuk pita 5 GHz dan 6 GHz (dikonfigurasi dengan config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , config_wifi_framework_wifi_score_low_rssi_threshold_5GHz , dan config_wifiFrameworkScoreLowRssiThreshold6ghz Hamparan RssiThreshold6ghz).
  • Peningkatan skor dihitung berdasarkan perkiraan throughput yang diperoleh dari teknologi, frekuensi saluran, bandwidth, RSSI, kondisi saluran, jumlah maksimum aliran spasial, dan parameter lainnya. Peningkatan skor dapat dikonfigurasi menggunakan overlay config_wifiFrameworkThroughputBonusNumerator dan config_wifiFrameworkThroughputBonusDenominator , dan dibatasi hingga nilai maksimum yang ditentukan menggunakan overlay config_wifiFrameworkThroughputBonusLimit .
  • Kandidat jaringan yang baru-baru ini dipilih oleh pengguna atau aplikasi mendapat peningkatan skor yang besar selama durasi yang dapat dikonfigurasi menggunakan overlay config_wifiFrameworkLastSelectionMinutes (untuk durasi tersebut, jaringan dijamin akan dipilih melalui jaringan yang tidak dipilih pengguna).
  • Kandidat yang cocok dengan jaringan saat ini akan mendapatkan peningkatan skor yang dikonfigurasi oleh overlay config_wifiFrameworkCurrentNetworkBonusMin dan config_wifiFrameworkCurrentNetworkBonusPercent (dapat bonus tambahan berdasarkan persentase RSSI dan skor berbasis throughput, hingga ke minimum yang dapat dikonfigurasi).
  • Jaringan aman mendapat skor lebih tinggi daripada jaringan terbuka. Bonus dikonfigurasi menggunakan overlay config_wifiFrameworkSecureNetworkBonus .
  • Jaringan tanpa meteran (gratis) mendapat skor lebih tinggi dibandingkan jaringan meteran (berbayar). Bonus dikonfigurasi menggunakan overlay config_wifiFrameworkUnmeteredNetworkBonus .
  • Jaringan yang disimpan memiliki skor lebih tinggi daripada jaringan yang disarankan menggunakan Suggestion API. Bonus dikonfigurasi menggunakan overlay config_wifiFrameworkSavedNetworkBonus .
  • Jaringan yang tidak tepercaya (yang dapat diminta sebagai bagian dari Suggestion API) mendapat skor lebih rendah dibandingkan jaringan lainnya.
  • Jaringan yang sebelumnya terdeteksi tidak memiliki internet mendapat skor 0 jika perangkat saat ini terhubung dengan jaringan lain yang memiliki akses internet.

Bonus default untuk disimpan versus saran dan tidak diukur versus diukur (yaitu, nilai hamparan default) menghasilkan urutan prioritas ketat untuk disimpan, disarankan, diukur, dan tidak diukur:

  1. Menyimpan jaringan tanpa meteran
  2. Jaringan tanpa meteran yang disarankan
  3. Jaringan terukur yang disimpan
  4. Jaringan terukur yang disarankan

Ini berarti jaringan tersimpan tanpa meteran (gratis) selalu dipilih sebelum jaringan tersimpan terukur (berbayar). Bonus skor yang baru-baru ini dipilih (berdasarkan pengguna atau aplikasi) dapat mengesampingkan prioritas ketat tersebut.

Kerangka kerja ini dapat memiliki beberapa kandidat pencetak skor yang terinstal tetapi hanya satu yang dapat aktif pada satu waktu. Pencetak skor lainnya dapat digunakan untuk metrik (untuk menyelidiki algoritma alternatif). Di Android 11, pencetak gol defaultnya adalah ThroughputScorer .

Pemblokiran SSID dan BSSID

Kerangka kerja ini dapat memblokir SSID dan/atau BSSID, yaitu tidak mempertimbangkannya untuk koneksi baik sementara maupun permanen.

pemblokiran BSSID

Pemblokiran BSSID bekerja dengan menyimpan dua penghitung kegagalan, penghitung kegagalan berkelanjutan dan penghitung coretan, per jenis kegagalan tertentu (lihat di bawah untuk daftar jenis kegagalan). Ketika kegagalan terjadi:

  • Penghitung untuk jenis kegagalan terkait bertambah.
  • Jika ambang kegagalan untuk jenis kegagalan tersebut tercapai:
    • BSSID diblokir.
    • Penghitung pukulan untuk kegagalan tersebut bertambah.

Durasi pemblokiran BSSID dimulai pada nilai dasar (yang dapat dikonfigurasi) (ditentukan oleh overlay config_wifiBssidBlocklistMonitorBaseBlockDurationMs atau config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs , bergantung pada RSSI), dan meningkat secara eksponensial hingga batas atas yang dapat dikonfigurasi (ditentukan oleh config_wifiBssidBlocklistMonitorFailureStreakCap hamparan ureStreakCap). Durasinya bertambah jika kegagalan terus menerus terjadi pada BSSID yang sama. Durasi adalah durasi dasar yang meningkat secara eksponensial oleh rangkaian kegagalan, yaitu rangkaian kegagalan 2 berarti durasi blok dasar 4x.

Ambang batas pemblokiran BSSID bergantung pada alasan kegagalan dan masing-masing dapat disesuaikan menggunakan overlay:

  • AP menolak pengaitan menggunakan MBO/OCE Tidak dapat menangani kode STA baru : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold .
  • Validasi internet melalui jaringan ini gagal: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold .
  • Kode kegagalan otentikasi kata sandi salah: config_wifiBssidBlocklistMonitorWrongPasswordThreshold .
  • Kode kegagalan otentikasi kegagalan EAP untuk jaringan EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold .
  • Penolakan pengaitan, penolakan pengaitan umum lainnya: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold .
  • Batas waktu asosiasi: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold .
  • Kegagalan otentikasi, kegagalan otentikasi umum lainnya: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold .
  • Kegagalan DHCP, kegagalan menyediakan DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold .
  • Pemutusan sambungan tidak normal, perangkat telah terputus dari jaringan dalam waktu yang sangat singkat setelah tersambung: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold . Jendela waktu dapat dikonfigurasi dengan config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs .

Kondisi pembersihan daftar blokir BSSID

BSSID dihapus dari daftar blokir ketika:

  • Wi-Fi diaktifkan: Semua BSSID dihapus dari daftar blokir.
  • Pengguna mengetuk jaringan di alat pilih Wi-Fi: Semua BSSID dari jaringan yang dipilih pengguna akan dihapus dari daftar blokir.
  • Batas Waktu: BSSID dihapus dari daftar blokir ketika durasi pemblokiran tercapai.
  • Reboot: Semua daftar blokir dihapus.
  • Jaringan dihapus: Semua BSSID yang terkait dengan jaringan ini dihapus dari daftar blokir.

Kondisi reset penghitung kegagalan dan goresan:

  • Reboot: Reset untuk semua BSSID.
  • Jaringan dihapus: Reset untuk BSSID yang terkait dengan jaringan.
  • Koneksi L2 berhasil: Reset untuk kode kesalahan berikut.

    • 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 (dihapus secara kondisional hanya jika terakhir kali perangkat terhubung ke BSSID ini lebih dari 3 jam yang lalu)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Validasi jaringan berhasil: Reset untuk kode kesalahan berikut.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Keberhasilan penyediaan DHCP: Reset untuk kode kesalahan berikut.

    • REASON_DHCP_FAILURE

Pemblokiran SSID

Pemblokiran SSID bekerja mirip dengan pemblokiran BSSID. Penghitung kegagalan per jenis kegagalan per jaringan bertambah ketika kegagalan koneksi (jenis tersebut) terjadi. Ketika jumlah kegagalan jenis tertentu melebihi ambang batas, SSID diblokir secara permanen atau sementara berdasarkan konfigurasi. Konfigurasi untuk setiap jenis kegagalan diberi kode dalam WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS dan dirangkum di bawah ini.

* Untuk jaringan yang dinonaktifkan sementara, durasi penonaktifan berubah secara dinamis berdasarkan jumlah kegagalan koneksi berturut-turut yang dialami pada jaringan. Setelah jaringan gagal terhubung sebanyak lima kali berturut-turut, setiap kegagalan berikutnya mengakibatkan durasi penonaktifan dua kali lebih lama dari durasi sebelumnya. Misalnya jaringan yang mengalami lima kegagalan berturut-turut akan dinonaktifkan selama 5 menit, kemudian 10 menit pada kegagalan keenam, 20 menit pada kegagalan ketujuh, dan seterusnya hingga batas maksimum 18 jam.

Kode kegagalan Keterangan Ambang Durasi penonaktifan dasar* Nonaktifkan tipe
DISABLED_DHCP_FAILURE Kegagalan untuk menyediakan DHCP 5 5 menit Sementara
DISABLED_NO_INTERNET_TEMPORARY Validasi jaringan gagal namun pengguna menyatakan bahwa mereka ingin tetap terhubung ke jaringan ini di masa mendatang 1 10 menit Sementara
DISABLED_AUTHENTICATION_NO_CREDENTIALS Pemohon tidak memiliki kredensial untuk terhubung ke jaringan 1 TIDAK Permanen
DISABLED_NO_INTERNET_PERMANENT Default untuk kegagalan validasi jaringan 1 TIDAK Permanen
DISABLED_BY_WIFI_MANAGER Tidak digunakan lagi dan tidak digunakan 1 TIDAK Permanen
DISABLED_BY_WRONG_PASSWORD Kata sandi salah, dan jaringan ini tidak pernah berhasil tersambung 1 TIDAK Permanen
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Kegagalan EAP dimana kartu SIM tidak berlangganan 1 TIDAK Permanen
DISABLED_ASSOCIATION_REJECTION Kegagalan penolakan asosiasi 5 5 menit Sementara
DISABLED_AUTHENTICATION_FAILURE Kegagalan otentikasi lainnya (yaitu, bukan kata sandi yang salah atau kegagalan EAP) 5 5 menit Sementara
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Kegagalan EAP (pribadi) khusus penyedia. 1 TIDAK Permanen
DISABLED_NETWORK_NOT_FOUND Pemohon gagal menemukan jaringan dalam hasil pemindaian yang cocok dengan jaringan yang diminta oleh kerangka koneksi (termasuk kemampuan jaringan). 2 5 menit Sementara
DISABLED_CONSECUTIVE_FAILURES Jaringan gagal terhubung lima kali atau lebih secara berturut-turut. Jenis kegagalan untuk kegagalan ini termasuk namun tidak terbatas pada jenis kegagalan yang tercantum dalam tabel ini.
5 5 menit Sementara

Jaringan yang dinonaktifkan sementara akan diaktifkan kembali ketika:

  • Durasi penonaktifan telah berlalu.
  • Pengguna secara manual memilih jaringan yang akan dihubungkan.
  • Pengguna mengaktifkan Wi-Fi.
  • Sistem di-boot ulang.
  • Jaringan dinonaktifkan pada RSSI yang sangat rendah, namun jaringan kemudian terdeteksi lagi pada RSSI sedang atau lebih tinggi.

Jaringan yang dinonaktifkan secara permanen diaktifkan kembali ketika:

  • Pengguna secara manual memilih jaringan yang akan dihubungkan.

Penghitung kegagalan untuk jaringan direset ketika:

  • Jaringan dihapus.
  • Perangkat telah berhasil terhubung ke jaringan.
  • Jaringan telah diaktifkan kembali setelah durasi penonaktifan habis.
  • Pengguna secara manual memilih jaringan yang akan dihubungkan.
  • Sistem di-boot ulang.

Kartu skor

Kartu skor, yang diperkenalkan di Android 10, mencatat statistik di perangkat tentang BSSID. Kartu skor disimpan menggunakan layanan IpMemoryStore .

Kartu skor tidak digunakan dalam pemilihan jaringan Android 11.

Pilihan koneksi pengguna

Android memiliki algoritme pilihan koneksi pengguna yang memungkinkan proses pemilihan untuk memilih jaringan Wi-Fi yang telah tersambung secara eksplisit oleh pengguna, misalnya jaringan rumah. Pengguna mungkin lebih memilih jaringan tersebut daripada jaringan publik meskipun kinerjanya lebih rendah daripada jaringan publik karena jaringan tersebut menyediakan layanan tambahan seperti kemampuan untuk mengontrol perangkat rumah.

Preferensi pengguna terhadap suatu jaringan ditangkap dengan menandai semua konfigurasi Wi-Fi yang terlihat dan kekuatan sinyalnya pada saat pengguna memilih jaringan. Jika salah satu konfigurasi Wi-Fi yang ditandai dipilih selama proses pemilihan otomatis dan jaringan yang dipilih pengguna tersedia, algoritme pilihan koneksi pengguna akan mengesampingkan pilihan dengan jaringan yang dipilih pengguna jika kondisi berikut terpenuhi:

  • Jaringan pilihan koneksi pengguna memiliki akses internet terakhir kali digunakan
  • Pilihan koneksi pengguna memiliki kekuatan sinyal yang tidak lebih buruk dibandingkan saat pertama kali dipilih dengan margin kesalahan. Margin kesalahan ini dapat dikonfigurasi menggunakan overlay config_wifiEstimateRssiErrorMarginDb .

Jaringan pilihan koneksi pengguna tetap ada setelah reboot. Pilihan koneksi pengguna berfungsi untuk jaringan tersimpan, jaringan Passpoint, dan jaringan saran.

Stasiun ganda secara bersamaan

Bagian ini menjelaskan pemilihan jaringan Wi-Fi ketika perangkat mendukung penyambungan ke dua jaringan Wi-Fi secara bersamaan.

Make-for-break

Jika fungsi make-before-break diaktifkan, perangkat akan mencoba menyambung ke jaringan baru sebelum memutuskan sambungan dari jaringan lama. Alur make-before-break menggunakan algoritma pemilihan jaringan yang sama dengan peralihan jaringan break-before-make (yaitu ketika perangkat terputus dari jaringan lama sebelum terhubung ke jaringan baru). Jika algoritme pemilihan jaringan memilih jaringan yang tidak dapat dialihkan menggunakan make-before-break, perangkat secara otomatis akan kembali ke break-before-make.

Koneksi terbatas dan internet secara bersamaan

Jika fungsi koneksi internet dan pembatasan bersamaan diaktifkan, perangkat dapat terhubung ke jaringan Wi-Fi terbatas sekunder yang hanya tersedia untuk aplikasi tertentu yang dikonfigurasi oleh produsen perangkat. Petunjuk bagi produsen perangkat untuk mengonfigurasinya ada di Batasan serentak dan koneksi internet .

Ketika algoritme pemilihan jaringan mendeteksi hasil pemindaian yang cocok dengan saran berbayar/pribadi OEM, algoritme tersebut secara otomatis menyambungkannya sebagai jaringan kedua. Pemilihan jaringan untuk jaringan Wi-Fi utama (yang menyediakan koneksi internet ke aplikasi biasa) biasanya terjadi secara paralel.

Pertanyaan yang sering diajukan (FAQ)

  1. Apakah jaringan aman selalu diprioritaskan dibandingkan jaringan terbuka?

    Tidak. Tersimpan versus disarankan dan terukur versus tidak terukur adalah kategori utama yang digunakan untuk mengevaluasi jaringan. Dalam setiap kategori, jaringan aman mempunyai prioritas tertentu dibandingkan jaringan terbuka, namun bobot yang lebih tinggi diberikan pada kualitas koneksi.

    Alasannya adalah keamanan data pengguna sebenarnya disediakan oleh enkripsi ujung ke ujung (misalnya, TLS). Jaringan aman hanya mengenkripsi bagian pertama komunikasi, dan bahkan untuk jaringan dengan kunci yang dibagikan sebelumnya, tidak memberikan banyak privasi.

  2. Mengapa jaringan yang disimpan diprioritaskan dibandingkan jaringan yang disarankan?

    Jaringan gratis (tidak berbayar) yang disimpan diprioritaskan dibandingkan jaringan gratis yang disarankan, dan jaringan berbayar yang disimpan diprioritaskan dibandingkan jaringan berbayar yang disarankan.

    Jaringan tersimpan diprioritaskan dibandingkan jaringan yang disarankan karena jaringan tersimpan adalah jaringan yang ditambahkan pengguna ke perangkat secara eksplisit. Itu menyiratkan preferensi untuk terhubung ke jaringan ini bila memungkinkan.

    Perhatikan bahwa pengguna dapat menonaktifkan perilaku koneksi otomatis untuk masing-masing jaringan tersimpan, yaitu menunjukkan bahwa jaringan ini hanya untuk digunakan secara manual dan tidak dianggap secara otomatis oleh perangkat.

  3. Bisakah saya mengubah urutan prioritas ketat atau menghapusnya sepenuhnya?

    Produsen perangkat dapat mengubah keputusan pemilihan jaringan dengan memodifikasi lapisan bonus yang tercantum di bagian di atas. Namun, mengubah nilai default tidak disarankan karena nilai tersebut dipilih setelah mempertimbangkan beberapa kasus penggunaan dengan cermat.