Получение уровня сигнала Wi-Fi в Android

Я могу получить уровень сигнала WiFi в дБм, используя следующий код.

for (ScanResult result : wifiScanResultList) { int signalLevel = result.level; } 

Это дает отрицательное значение. Когда мы видим настройку WiFi по умолчанию и щелкаем по подключенной сети Wi-Fi, она дает «хороший» или «плохой» сигнал в качестве сигнала. Каков диапазон, который мы можем отфильтровать эти отрицательные значения как «Хороший» уровень сигнала или «Плохой» уровень сигнала?

Его старая должность, но это может помочь кому-то …

 WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); int numberOfLevels = 5; WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels); 

Документация: public static int calculateSignalLevel (int rssi, int numLevels)

Пожалуйста, проверьте, как представлены значения dBm для принимаемой мощности беспроводного сигнала.

Отлично> -50 дБм

Хорошее от -50 до -60 дБм

Ярмарка от -60 до -70 дБм

Слабый <-70 дБм

Да, точно. Таким образом представлены значения дБм для мощности принимаемого сигнала. Вот некоторые подробности в Википедии.

-100 означает наименьшее значение (вообще никакой сигнал), а 0 означает очень хороший сигнал (100%),

 WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); // Level of a Scan Result List<ScanResult> wifiList = wifiManager.getScanResults(); for (ScanResult scanResult : wifiList) { int level = WifiManager.calculateSignalLevel(scanResult.level, 5); System.out.println("Level is " + level + " out of 5"); } // Level of current connection int rssi = wifiManager.getConnectionInfo().getRssi(); int level = WifiManager.calculateSignalLevel(rssi, 5); System.out.println("Level is " + level + " out of 5"); 
Intereting Posts
Как постоянно активный Интернет в режиме доз Зефир и Нуга Воспроизводить видеофайл с youtube в android Декодировать строку, закодированную в формате utf-8 в android Как показать данные из базы данных в RecyclerView с высокой производительностью? Как Starbucks показывает пользовательский интерфейс на устройствах Android в ближайшем магазине? Какая разница с получением местоположения с помощью диспетчера местоположений и провайдера Fuse Location Api? Android Web App: Позиция: исправлено нарушение? Изменение размера изображения с высокой эффективностью в Android Обходное сопоставление между NetworkInfo и NetworkInterface Android MediaPlayer не хочет искать видеопоток RTSP Добавление растрового изображения водяного знака поверх видео в android: MediaMuxer 4.3 или ffmpeg Изменить направление ActionBar SetEmptyView (), похоже, не работает (Шерлок) ListFragment Копирование файлов в оболочке АБР с помощью run-as Ведение журналов значений переменных в Android ndk