Android roaming
The Android Open Source Project documents the signal levels below which its framework keeps scanning for a better network (-70 dBm on 5 and 6 GHz, -73 dBm on 2.4 GHz, with scans skipped while traffic tops 16 packets per second) and leaves roaming within one SSID to the chip's firmware, and its code leaves 802.11r off unless the device maker turns it on.
- Vendor or body
- Google (Android Open Source Project)
- Model or version
- Android 10 and later as built from AOSP (Wi-Fi module, main branch read 2026-10-08; network selection page written for Android 12 and later); device makers' builds, drivers and firmware may change any value
- Last verified
- Oct 8, 2026
- Sourced values
- 14
Values
| Parameter | Value | Condition |
|---|---|---|
| Fast transition (802.11r) | FT-PSK and FT-EAP, off unless the maker enables1 | The AOSP framework adds FT key management to saved PSK and EAP networks only when the device maker sets config_wifi_fast_bss_transition_enabled, which defaults to false. The framework code has no FT-SAE option. What the chip's firmware does when it roams is not documented |
| Fast transition default | config_wifi_fast_bss_transition_enabled is false2 | AOSP default; a device maker can override it in its build |
| FT over the air or over the DS | Not published by the vendor3 | Not stated in the AOSP Wi-Fi pages or in the framework code checked |
| PMK caching | Framework keeps PMK cache entries4 | Stored per saved network and BSSID, each with an expiration time |
| Opportunistic key caching | OKC is a per-network EAP option, off by default1 | Passed to the supplicant only when the network's enterprise configuration sets it; the supplicant default is off unless okc=1 is set globally |
| Neighbor reports (802.11k) | Not published by the vendor3 | The AOSP network selection, WPA3, Wi-Fi 7 and low-latency pages do not mention 802.11k. Where firmware roaming is available, the framework leaves AP choice within one SSID to the firmware |
| BSS transition management (802.11v) | Framework acts on BTM requests it is told of5 | When a request has Disassociation Imminent set, the framework blocks the current AP for the MBO retry delay or a default time; when the request was not accepted, it starts a scan. Whether a request is accepted is decided below the framework and is not documented |
| When the framework looks for a better network | Below -70 dBm (5/6 GHz) or -73 dBm (2.4 GHz)3 | Screen on and connected, AOSP defaults a device maker can change. A scan is skipped while traffic tops 16 packets per second, or while signal is above these values, network selection ran in the last 10 minutes and the network is validated (or approved for use without internet access) |
| Roaming within one SSID | Within one SSID, firmware roams where available3 | A candidate with the same SSID and security type as the connected network counts as a match, so the framework takes no action. Firmware roam thresholds are not published |
| Scan schedule, screen on | Screen on, scans at 20, 40, 80, then 160 s3 | Exponential backoff that restarts at 20 s when the screen turns on or off; device makers can change the schedule. RSSI and link stats are polled every 3 s |
| Scan behavior, screen off | Screen off, firmware runs roaming scans3 | The framework performs no scans while the screen is off and the device is connected |
| Bands and standards | 2.4, 5 and 6 GHz; Wi-Fi 7 from Android 136 | The framework has thresholds for all three bands; Wi-Fi 7 counts as supported when the driver reports EHT capability, or when the device maker forces it with an overlay |
| Wi-Fi security | WPA3 Personal and Enterprise, OWE, from Android 107 | Only when the device's supplicant, driver, firmware and chip support SAE, SUITEB192 and OWE; apps can check WifiManager#isWpa3SaeSupported. Transition Disable and H2E from Android 12 |
| Low-latency mode | Turns off power save for a foreground app's Wi-Fi lock8 | Android 10 and later, screen on; any scan or roam tuning in this mode is up to the driver and firmware |
Sources
- SupplicantStaNetworkHalAidlImpl.java (AOSP Wi-Fi module source). Read Oct 8, 2026.
- ServiceWifiResources config.xml (AOSP Wi-Fi module defaults). Read Oct 8, 2026.
- Wi-Fi network selection. Read Oct 8, 2026.
- PmkCacheManager.java (AOSP Wi-Fi module source). Read Oct 8, 2026.
- ClientModeImpl.java (AOSP Wi-Fi module source). Read Oct 8, 2026.
- Wi-Fi 7. Read Oct 8, 2026.
- WPA3 and Wi-Fi Enhanced Open. Read Oct 8, 2026.
- Wi-Fi low-latency mode. Read Oct 8, 2026.
About this page
Built from 8 sources: 8 vendor documents. Researched and drafted with AI assistance. How pages are made
- First published
- Last updated
Change history (1)
- First published
Cite this page
Plain
Ben Rutter. "Android roaming." OT Wireless, published October 8, 2026. https://otwireless.com/requirements/android-wifi-client/
APA 7
Rutter, B. (2026, October 8). Android roaming. OT Wireless. https://otwireless.com/requirements/android-wifi-client/
BibTeX
@misc{rutter2026androidwificlient,
author = {Rutter, Ben},
title = {{Android roaming}},
year = {2026},
howpublished = {\url{https://otwireless.com/requirements/android-wifi-client/}},
organization = {OT Wireless},
}