1. Вам нужно добавить разрешения в AndroidManifest.xml
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
В зависимости от системы Android вам также необходимо добавить и применить разрешения на определение местоположения.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
В противном случае wifiManager.getScanResults() не может получить никаких данных;
2. Пожалуйста, установите настройки Android, чтобы включить WLAN
частная пустота startScanWifi () { WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); wifiManager.startScan(); List<ScanResult> resultList = wifiManager.getScanResults(); Результат сканирования Результат сканирования; Строковый SSID; инт rssi; внутренний уровень; если (resultList != null && resultList.size() > 0) { for (int i = 0; i < resultList.size(); i++) { scanResult = результатСписок.получить(я); //имя SSID = scanResult.SSID; //Сила сигнала, полученное значение представляет собой интервальное значение от 0 до -100, которое является данными типа int rssi = scanResult.level; //Уровень силы сигнала, в соответствии со значением силы, разделенный на 6 уровней, 5 — самый большой, указывающий на самую высокую силу уровень = WifiManager.calculateSignalLevel(rssi, 6); } } }
resultList — это результат списка wifi, к которым можно подключиться
3. Получите подключенный Wi-Fi
частная информация WifiResultInfo getConnectedWifi() { WifiResultInfo wifiResultInfo = ноль; WifiInfo wifiInfo = wifiManager.getConnectionInfo(); если (wifiInfo != ноль) { Строка ssid = wifiInfo.getSSID(); int rssi = wifiInfo.getRssi(); если (ssid.startsWith("\"") && ssid.endsWith("\"")) { ssid = ssid.substring(1, ssid.length() - 1); } } вернуть wifiResultInfo; }