Pilihan jaringan Wi-Fi

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

Masa aktif koneksi otomatis

Bagian ini menjelaskan proses cara perangkat Android menilai dan terhubung 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 (terhubung): Sub-sistem konektivitas Android secara rutin mengevaluasi apakah koneksi saat ini cukup baik untuk melewati pemindaian (seperti yang ditentukan dalam pemindaian saat layar aktif). 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 Setelan).
    • Layar aktif (tidak terhubung): Sub-sistem konektivitas Android mengeluarkan pemindaian berkala yang mengikuti jadwal penundaan eksponensial. Modul mengevaluasi semua hasil pemindaian yang diterima dan mencoba memilih jaringan terbaik untuk terhubung.
    • Layar nonaktif (koneksi terputus): CPU host memprogram firmware dengan daftar jaringan pilihan menggunakan pemindahan jaringan pilihan (PNO) memindai segera setelah layar nonaktif. Firmware mengaktifkan host jika menemukan salah satu jaringan pilihan. AOSP mengasumsikan bahwa PNO didukung di 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 disetel ke false, tidak ada pemindaian konektivitas yang dilakukan dan hasil pemindaian tidak memicu pemilihan jaringan. Setelan ini tidak berpengaruh saat perangkat terputus, yang berarti pemindaian konektivitas dan pemilihan jaringan tetap terjadi.

  2. Hasil pemindaian dievaluasi.

    • Jika perangkat terhubung ke jaringan Wi-Fi, framework akan mengevaluasi apakah jaringan saat ini cukup baik untuk melewati pemilihan jaringan.

      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 ke jaringan secara manual (dengan "baru-baru ini" dapat dikonfigurasi menggunakan overlay config_wifiSufficientDurationAfterUserSelectionMilliseconds).
      • Perangkat terhubung ke koneksi pendaftaran online (OSU).
      • Semua persyaratan berikut telah dipenuhi:

        • RSSI berada di atas nilai minimum RSSI yang diperlukan atau traffic yang memadai mengalir melalui koneksi (lihat pemindaian saat layar aktif untuk nilai minimum RSSI dan traffic).
        • Jaringan divalidasi (terhubung ke internet) atau disetujui pengguna untuk digunakan tanpa akses internet.
        • Jaringan tidak berbayar.
    • Jika jaringan cukup baik untuk melewati pemilihan jaringan, tidak ada tindakan lebih lanjut yang dilakukan.

    • Jika jaringan Wi-Fi yang terhubung tidak cukup baik atau jika perangkat tidak terhubung ke jaringan, framework akan memanggil penyedia jaringan untuk membuat daftar jaringan Wi-Fi kandidat yang akan dihubungkan berdasarkan hasil pemindaian yang difilter. Penominasi 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 RSSI entri (dapat dikonfigurasi menggunakan overlay config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz, dan config_wifiFrameworkScoreEntryRssiThreshold6ghz). Selain itu, BSSID yang diblokir difilter. BSSID dapat diblokir berdasarkan kegagalan koneksi berulang, seringnya koneksi terputus, dan permintaan eksplisit dari AP untuk tidak mencoba asosiasi selama jangka waktu tertentu (MBO-OCE). Pemblokiran BSSID dijelaskan di bawah dalam Pemblokiran SSID dan BSSID.

    • Saat perangkat bergerak cepat, hasil pemindaian dapat difilter lebih lanjut untuk menghapus BSSID yang RSSI-nya berubah dengan cepat (indikasi bahwa BSSID 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 yang cukup terpisah dalam waktu).

  3. Framework menjalankan pemberi skor kandidat untuk menghasilkan skor bagi setiap kandidat service set identifier (SSID). Kandidat SSID dapat mencakup beberapa kandidat basic service set identifier (BSSID) (dibuat oleh penentu jaringan). Kandidat dengan skor tertinggi adalah kandidat pemenang.

  4. Framework menjalankan algoritma pilihan koneksi pengguna, yang dapat menjadikan jaringan yang dipilih pengguna sebagai kandidat pemenang baru, bukan menggunakan kandidat pemenang dari penskor kandidat.

  5. Framework menentukan apakah kandidat pemenang cocok dengan jaringan yang terhubung saat ini. Agar dianggap cocok, salah satu hal berikut harus terpenuhi:

    • Kandidat pemenang dan jaringan Wi-Fi yang terhubung memiliki BSSID yang sama.
    • Jika roaming firmware tersedia (termasuk kemampuan daftar hitam BSSID), kandidat yang menang 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 dilakukan. Jika kandidat pemenang tidak cocok dengan jaringan, perangkat akan dikaitkan dengan kandidat pemenang.

Perhatikan bahwa koneksi jaringan otomatis dinonaktifkan saat aplikasi menggunakan Wi-Fi Network Request API, yang menggantikan sistem dan membuat LAN tanpa internet, kecuali di perangkat yang mendukung stasiun serentak ganda.

Evaluasi jaringan yang terhubung

Framework atau firmware Android secara berkala mengevaluasi kualitas jaringan yang terhubung. Bagian ini menjelaskan cara jaringan yang terhubung dievaluasi saat layar aktif atau nonaktif.

Evaluasi ini dilakukan selain pemilihan jaringan yang dibahas di atas.

Layar aktif

Framework Android mengevaluasi jaringan yang terhubung dengan cara berikut:

  1. Layanan Wi-Fi melakukan polling RSSI dan statistik link-layer 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 menjadi 6 detik (dikonfigurasi oleh overlay config_wifiPollRssiLongIntervalMilliseconds) saat perangkat tidak bergerak 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) saat perangkat tidak dalam keadaan diam atau RSSI di bawah -73 dBm (dikonfigurasi oleh overlay config_wifiClientRssiMonitorThresholdDbm).
  2. Layanan Wi-Fi menghitung skor koneksi berdasarkan RSSI dan statistik link-layer.

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

Layar nonaktif

Framework tidak memulai evaluasi pada jaringan yang terhubung, tetapi 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 dapat melakukan roaming atau (pada akhirnya) membatalkan hubungan dari jaringan dan mengaktifkan host.

Pemindaian konektivitas

Pemindaian dilakukan secara otomatis berdasarkan apakah layar perangkat aktif, layar nonaktif dan terhubung ke Wi-Fi, atau layar nonaktif dan tidak terhubung ke Wi-Fi.

Layar aktif

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

Interval pemindaian mundur eksponensial direset 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 menetapkan jadwal pemindaian saat layar aktif secara dinamis.

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

  • Perangkat terhubung ke koneksi pendaftaran online (OSU).
  • Traffic yang cukup mengalir melalui koneksi (lihat nilai minimum traffic di bawah).
  • RSSI berada di atas nilai minimum RSSI yang diperlukan (lihat nilai minimum 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 disetujui pengguna untuk digunakan tanpa akses internet.

Nilai minimum RSSI dan traffic adalah:

  • RSSI di atas -73 dBm untuk band 2,4 GHz, dikonfigurasi dengan overlay config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, atau -70 dBm untuk band 5 GHz dan 6 GHz, dikonfigurasi dengan overlay config_wifi_framework_wifi_score_low_rssi_threshold_5GHz dan config_wifiFrameworkScoreLowRssiThreshold6ghz.
  • Traffic (mengirim atau menerima) di atas 16 paket per detik (pps) yang dikonfigurasi dengan overlay config_wifiFrameworkMinPacketPerSecondActiveTraffic.

Saat perangkat terhubung dan layar aktif. Pemberi skor yang terhubung secara berkala memantau kualitas Wi-Fi dengan melihat sinyal seperti RSSI dan jumlah paket yang ditransfer. Jika kualitas Wi-Fi ditentukan buruk (seperti yang ditentukan di bawah) dan perangkat mendukung stasiun serentak ganda, maka pemindaian akan dipicu. Overlay config_wifiLowConnectedScoreThresholdToTriggerScanForMbb dapat digunakan untuk mengonfigurasi nilai minimum skor yang memicu pemindaian. Overlay config_wifiLowConnectedScoreScanPeriodSeconds dapat digunakan untuk mengonfigurasi periode pemindaian ini.

Layar nonaktif dan terhubung ke Wi-Fi

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

Layar nonaktif dan tidak terhubung ke Wi-Fi (status terputus)

Saat layar nonaktif dan Wi-Fi terputus, firmware akan melakukan pemindaian PNO untuk SSID. Framework mengonfigurasi firmware dengan daftar SSID yang akan dipindai dan daftar channel yang akan dipindai. Jika SSID yang dikonfigurasi ditemukan, firmware akan mengaktifkan framework.

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

Nomine jaringan

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

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

Nominator jaringan berikut digunakan:

  • Penentu jaringan tersimpan: Mengevaluasi semua jaringan tersimpan (termasuk langganan Passpoint tersimpan).
  • Penentu jaringan yang disarankan: Mengevaluasi semua jaringan yang disediakan oleh aplikasi menggunakan Suggestion API (termasuk langganan Passpoint yang disarankan).

Pemberi skor kandidat

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

  • Skor dasar dihitung berdasarkan RSSI dengan RSSI dibatasi pada -73 dBm untuk band 2,4 GHz atau -70 dBm untuk band 5 GHz dan 6 GHz (dikonfigurasi dengan overlay config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz, dan config_wifiFrameworkScoreLowRssiThreshold6ghz).
  • Peningkatan skor dihitung berdasarkan perkiraan throughput yang berasal 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.
  • Jaringan kandidat yang baru-baru ini dipilih oleh pengguna atau oleh aplikasi mendapatkan peningkatan skor yang besar selama durasi yang dapat dikonfigurasi menggunakan overlay config_wifiFrameworkLastSelectionMinutes (selama durasi tersebut, jaringan dijamin akan dipilih daripada 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 (kandidat tersebut akan mendapatkan bonus tambahan berdasarkan persentase skor berbasis RSSI dan throughput, hingga minimum yang dapat dikonfigurasi).
  • Jaringan aman diberi skor lebih tinggi daripada jaringan terbuka. Bonus dikonfigurasi menggunakan overlay config_wifiFrameworkSecureNetworkBonus.
  • Jaringan tidak terukur (gratis) diberi skor lebih tinggi daripada jaringan terukur (berbayar). Bonus dikonfigurasi menggunakan overlay config_wifiFrameworkUnmeteredNetworkBonus.
  • Jaringan tersimpan diberi 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) diberi skor lebih rendah daripada jaringan lainnya.
  • Jaringan yang sebelumnya terdeteksi tidak memiliki internet akan mendapatkan skor 0 jika perangkat saat ini terhubung ke jaringan lain yang memiliki akses internet.

Bonus default untuk yang disimpan versus saran dan tidak terukur versus terukur (yaitu, nilai overlay default) menghasilkan urutan prioritas yang ketat untuk yang disimpan, disarankan, terukur, dan tidak terukur:

  1. Jaringan tidak berbayar yang tersimpan
  2. Jaringan tidak berbayar yang disarankan
  3. Jaringan berbayar tersimpan
  4. Jaringan berbayar yang disarankan

Artinya, jaringan tersimpan tanpa kuota (gratis) selalu dipilih sebelum jaringan tersimpan dengan kuota (berbayar). Bonus skor yang baru-baru ini dipilih (oleh pengguna atau aplikasi) dapat menggantikan prioritas ketat tersebut.

Framework dapat menginstal beberapa pemberi skor kandidat, tetapi hanya satu yang dapat aktif dalam satu waktu. Pemberi skor lainnya dapat digunakan untuk metrik (untuk menyelidiki algoritma alternatif). Di Android 11, pemberi skor default adalah ThroughputScorer.

Pemblokiran SSID dan BSSID

Framework dapat memblokir SSID atau BSSID, yaitu tidak mempertimbangkannya untuk koneksi baik sementara maupun permanen.

Pemblokiran BSSID

Pemblokiran BSSID berfungsi dengan menyimpan dua penghitung kegagalan, penghitung kegagalan berkelanjutan dan penghitung rentetan, per jenis kegagalan tertentu (lihat di bawah untuk daftar jenis kegagalan). Jika terjadi kegagalan:

  • Penghitung untuk jenis kegagalan yang sesuai akan bertambah.
  • Jika batas kegagalan untuk jenis kegagalan tersebut tercapai:
    • BSSID diblokir.
    • Penghitung rentetan untuk kegagalan akan bertambah.

Durasi BSSID diblokir dimulai dari nilai dasar (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 overlay config_wifiBssidBlocklistMonitorFailureStreakCap). Durasi akan bertambah jika kegagalan terus terjadi pada BSSID yang sama. Durasi adalah durasi dasar yang meningkat secara eksponensial berdasarkan rentetan kegagalan, yaitu rentetan kegagalan 2 menyiratkan durasi pemblokiran dasar 4x.

Nilai minimum untuk 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 autentikasi sandi salah: config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • Kode kegagalan autentikasi kegagalan EAP untuk jaringan EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • Penolakan pengaitan, penolakan pengaitan umum lainnya: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • Waktu tunggu asosiasi: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • Kegagalan autentikasi, kegagalan autentikasi umum lainnya: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • Kegagalan DHCP, kegagalan penyediaan DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold.
  • Terputus secara tidak normal, perangkat telah terputus dari jaringan dalam waktu yang sangat singkat setelah terhubung: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. Periode waktu dapat dikonfigurasi dengan config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.

Kondisi penghapusan daftar blokir BSSID

BSSID dihapus dari daftar blokir saat:

  • Wi-Fi diaktifkan: Semua BSSID dihapus dari daftar blokir.
  • Pengguna mengetuk jaringan di pemilih Wi-Fi: Semua BSSID jaringan yang dipilih pengguna dihapus dari daftar yang diblokir.
  • Waktu tunggu: BSSID dihapus dari daftar blokir saat durasi pemblokiran tercapai.
  • Mulai ulang: Semua daftar yang diblokir akan dihapus.
  • Jaringan dihapus: Semua BSSID yang terkait dengan jaringan ini dihapus dari daftar blokir.

Kondisi reset penghitung kegagalan dan rentetan:

  • Reboot: Reset untuk semua BSSID.
  • Jaringan dihapus: Mereset BSSID yang terkait dengan jaringan.
  • Keberhasilan koneksi L2: Reset untuk kode error 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 bersyarat hanya jika terakhir kali perangkat terhubung ke BSSID ini lebih dari 3 jam yang lalu)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Keberhasilan validasi jaringan: Reset untuk kode error berikut.

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

    • REASON_DHCP_FAILURE

Pemblokiran SSID

Pemblokiran SSID berfungsi mirip dengan pemblokiran BSSID. Penghitung kegagalan per jenis kegagalan per jaringan akan bertambah saat terjadi kegagalan koneksi (jenis tersebut). Jika jumlah kegagalan jenis tertentu melebihi nilai minimum, SSID akan diblokir secara permanen atau sementara berdasarkan konfigurasi. Konfigurasi untuk setiap jenis kegagalan dikodekan dalam WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS dan dirangkum di bawah.

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

Kode kegagalan Deskripsi Nilai minimum Durasi penonaktifan dasar* Jenis penonaktifan
DISABLED_DHCP_FAILURE Gagal menyediakan DHCP 5 5 menit Sementara
DISABLED_NO_INTERNET_TEMPORARY Validasi jaringan gagal, tetapi pengguna menyatakan bahwa mereka ingin tetap terhubung ke jaringan ini pada masa mendatang 1 10 menit Sementara
DISABLED_AUTHENTICATION_NO_CREDENTIALS Supplicant tidak memiliki kredensial untuk terhubung ke jaringan 1 NA Permanen
DISABLED_NO_INTERNET_PERMANENT Default untuk kegagalan validasi jaringan 1 NA Permanen
DISABLED_BY_WIFI_MANAGER Tidak digunakan lagi dan tidak digunakan 1 NA Permanen
DISABLED_BY_WRONG_PASSWORD Sandi salah, dan jaringan ini belum pernah berhasil terhubung 1 NA Permanen
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Kegagalan EAP saat kartu SIM tidak berlangganan 1 NA Permanen
DISABLED_ASSOCIATION_REJECTION Kegagalan penolakan atribusi 5 5 menit Sementara
DISABLED_AUTHENTICATION_FAILURE Kegagalan autentikasi lainnya (yaitu, bukan sandi yang salah atau kegagalan EAP) 5 5 menit Sementara
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Kegagalan EAP khusus penyedia (pribadi). 1 NA Permanen
DISABLED_NETWORK_NOT_FOUND Supplicant gagal menemukan jaringan dalam hasil pemindaian yang cocok dengan jaringan yang diminta oleh framework untuk 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 mencakup, tetapi tidak terbatas pada jenis kegagalan yang tercantum dalam tabel ini.
5 5 menit Sementara

Jaringan yang dinonaktifkan sementara akan diaktifkan kembali jika:

  • Durasi penonaktifan telah berakhir.
  • Pengguna memilih jaringan yang akan dihubungkan secara manual.
  • Pengguna mengaktifkan/menonaktifkan Wi-Fi.
  • Sistem dimulai ulang.
  • Jaringan dinonaktifkan pada RSSI yang sangat rendah, tetapi jaringan terdeteksi lagi pada RSSI sedang atau lebih tinggi.

Jaringan yang dinonaktifkan secara permanen akan diaktifkan kembali jika:

  • Pengguna memilih jaringan yang akan dihubungkan secara manual.

Penghitung kegagalan untuk jaringan direset saat:

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

Kartu skor

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

Kartu skor tidak digunakan dalam pemilihan jaringan Android 11.

Pilihan koneksi pengguna

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

Preferensi pengguna untuk jaringan dicatat 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, algoritma pilihan koneksi pengguna akan menggantikan 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 daripada saat pilihan tersebut awalnya dipilih dengan margin error. Margin error ini dapat dikonfigurasi menggunakan overlay config_wifiEstimateRssiErrorMarginDb.

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

Stasiun serentak ganda

Bagian ini menjelaskan pemilihan jaringan Wi-Fi saat perangkat mendukung koneksi ke dua jaringan Wi-Fi secara bersamaan.

Buat sebelum putus (Make-before-break)

Jika fungsi buat-sebelum-putus diaktifkan, perangkat akan mencoba terhubung ke jaringan baru sebelum berhenti terhubung dari jaringan lama. Alur buat-sebelum-putus menggunakan algoritma pemilihan jaringan yang sama dengan pengalihan jaringan putus-sebelum-buat (yaitu saat perangkat terputus dari jaringan lama sebelum terhubung ke jaringan baru). Jika algoritma pemilihan jaringan memilih jaringan yang tidak dapat dialihkan menggunakan make-before-break, perangkat akan otomatis beralih kembali ke break-before-make.

Koneksi internet dan terbatas serentak

Jika fungsi koneksi internet dan terbatas secara 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 mengonfigurasi fitur ini ada di Koneksi internet dan terbatas serentak.

Saat algoritma pemilihan jaringan mendeteksi hasil pemindaian yang cocok dengan saran pribadi atau berbayar OEM, algoritma tersebut akan otomatis terhubung ke saran tersebut sebagai jaringan kedua. Pemilihan jaringan untuk jaringan Wi-Fi utama (yang menyediakan koneksi internet ke aplikasi reguler) terjadi secara paralel seperti biasa.

Pertanyaan umum (FAQ)

  1. Apakah jaringan aman selalu diprioritaskan daripada jaringan terbuka?

    Tidak. Jaringan yang disimpan versus disarankan dan jaringan berbayar versus tidak berbayar adalah kategori utama tempat jaringan dievaluasi. Dalam setiap kategori, jaringan aman memiliki prioritas lebih tinggi daripada jaringan terbuka, tetapi bobot yang jauh lebih tinggi diberikan pada kualitas koneksi.

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

  2. Mengapa jaringan tersimpan diprioritaskan daripada jaringan yang disarankan?

    Jaringan gratis (tidak berbayar) tersimpan diprioritaskan daripada jaringan gratis yang disarankan dan jaringan berbayar tersimpan diprioritaskan daripada jaringan berbayar yang disarankan.

    Jaringan tersimpan diprioritaskan daripada jaringan yang disarankan karena jaringan tersimpan adalah jaringan yang ditambahkan pengguna ke perangkat secara eksplisit. Hal ini menyiratkan preferensi untuk terhubung ke jaringan ini jika memungkinkan.

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

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

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