Android gets the current Wi-Fi Channel
For Network diagnosis, You Need To diagnose whether the current Wi-Fi channel is congested. Currently, it only solves the problem of obtaining the current Wi-Fi channel, mainly using the frequency field of ScanResult, you also need to use the SSID and BSSID to match the current Wi-Fi signal wifiInfo from ScanResults. The specific code is as follows:
Public static int getCurrentChannel (Context context) {WifiManager wifiManager = (WifiManager) context. getSystemService (Context. WIFI_SERVICE); WifiInfo wifiInfo = wifiManager. getConnectionInfo (); // List of current Wi-Fi connection information
ScanResults = wifiManager. getScanResults (); for (ScanResult result: scanResults) {if (result. BSSID. equalsIgnoreCase (wifiInfo. getBSSID () & result. SSID. equalsIgnoreCase (wifiInfo. getSSID (). substring (1, wifiInfo. getSSID (). length ()-1) {return getChannelByFrequency (result. frequency) ;}} return-1;}/*** obtain the channel by frequency ** @ param frequency * @ return */public static int getChannelByFrequency (int frequency) {int channel =-1; switch (frequency) {case 2412: channel = 1; break; case 2417: channel = 2; break; case 2422: channel = 3; break; case 2427: channel = 4; break; case 2432: channel = 5; break; case 2437: channel = 6; break; case 2442: channel = 7; break; case 2447: channel = 8; break; case 2452: channel = 9; break; case 2457: channel = 10; break; case 2462: channel = 11; break; case 2467: channel = 12; break; case 2472: channel = 13; break; case 2484: channel = 14; break; case 5745: channel = 149; break; case 5765: channel = 153; break; case 5785: channel = 157; break; case 5805: channel = 161; break; case 5825: channel = 165; break;} return channel ;}