Есть два разных способа получить данные о мощности передачи:
Код: Выделить всё
ScanResult.getTxPower()Код: Выделить всё
ScanRecord.getTxPowerLevel()
Я также просмотрел другие библиотеки BLE и почувствовал, что «мощность передачи» и «уровень мощности передачи» иногда используются как синонимы, например. некоторые используют метод getTxPower, чтобы действительно получить уровень мощности передачи.
Однако, насколько я понимаю, в Android BLE ScanRecord.getTxPowerLevel() возвращает уровень мощности для передачи BLE, который был установлен на отправляющем устройстве. Таким образом, это значение само по себе не зависит от расстояния передающего и принимающего устройства. Т.е. при сканировании это значение будет постоянным для одного и того же устройства, и обычно устройства используют некоторые «типичные» значения, например. например 12 (дБм)
Но что возвращает ScanResult.getTxPower() ? В некоторых источниках это определяется как RSSI на расстоянии 1 м (также иногда называемая «калиброванной мощностью передачи»). Является ли это также постоянной величиной для данного устройства, т.е. установлено производителем? Или это значение, которое каким-то образом измеряется во время сканирования?
Или оба метода являются просто синонимами и должны возвращать одно и то же значение?
Я спрашиваю, потому что играю с Android BLE, но никогда не видел устройства во время сканирования, где ScanRecord.getTxPower() возвращает значение, кроме 127 (
Код: Выделить всё
TX_POWER_NOT_PRESENTПодробнее здесь: https://stackoverflow.com/questions/782 ... -gettxpowe
Мобильная версия