Визуализируйте уровень сигнала Android Bluetooth

Я могу получить Dbm Bluetooth, но я хочу визуализировать уровень сигнала. Я думаю, если кто-нибудь может помочь со следующим:

  1. Макс./мин. значение RSSI
  2. RSSI (dbm) в проценты
  3. Простое визуальное представление (горизонтальное). (В настоящее время я использую ProgressBar для простоты, хотя было бы неплохо сделать его более содержательным и профессиональным).

Я нашел следующий код, который может помочь:

public static int calculateSignalLevel(int rssi, int numLevels) {
   if (rssi <= MIN_RSSI){return 0;}
   else if (rssi >= MAX_RSSI){return numLevels - 1;} 
   else { 
      int partitionSize = (MAX_RSSI - MIN_RSSI) / (numLevels - 1);
      return (rssi - MIN_RSSI) / partitionSize;
   }      
}

Редактировать: рядом с моим ноутбуком я получаю от -60 до -70 (возможно, это может быть самое близкое?)


person msj121    schedule 17.01.2014    source источник


Ответы (1)


Для моего приложения для Android: «b и l bluetooth le сканер» я использую постоянно обновляющиеся индикаторы выполнения с диапазоном от -120 до -40 для rssi. Я также предоставляю настройки для ограничения минимального rssi и общего количества устройств LE, чтобы приложение не пыталось обновить слишком много индикаторов выполнения для каждого сканирования LE. По-видимому, вы не можете задержать функцию LeScanCallback более чем на несколько сотен миллисекунд, иначе вы можете не увидеть все устройства при сканировании. Для эффективности вы можете пропустить визуальные обновления для уровней rssi, которые не изменились, на определенную величину.

person BlueSpectrumz    schedule 15.06.2014