Можно ли с помощью Android Beacon Library отслеживать устройства BLE без маяка? если да, как я могу оценить их расстояние, используя rssi без txPower?
Мониторинг устройств BLE без маяков (Android Beacon Library)
Ответы (1)
Да, с помощью библиотеки можно обнаружить устройства BLE, не являющиеся маяками. Вы также можете рассчитать предполагаемое расстояние до устройств, если сначала измерите известный rssi на расстоянии одного метра для устройства.
Код ниже показывает, как это сделать:
final DistanceCalculator distanceCalculator = new ModelSpecificDistanceCalculator(this, null);
final int rssiAtOneMeter = -59;
mBeaconManager.setNonBeaconLeScanCallback(new NonBeaconLeScanCallback() {
@Override
public void onNonBeaconLeScan(BluetoothDevice bluetoothDevice, int rssi, byte[] bytes) {
Double estimatedDistnaceInMeters = distanceCalculator.calculateDistance(rssiAtOneMeter, rssi);
// TODO: do something with estimatedDistanceInMeters
}
});
person
davidgyoung
schedule
26.11.2015
Спасибо, я вижу, что setNonBeaconLeScanCallback был добавлен в последнюю версию.
- person Droider; 26.11.2015
Очень хорошая функция. Однако обратный вызов запускается только один раз, хотя устройство BLE, не являющееся маяком, все еще рекламирует, а beaconManager по-прежнему получает обратные вызовы от устройств-маяков. Есть ли какая-нибудь хитрость в настройке beaconManager? (например, в iOS мы можем сказать, хотим ли мы обнаруживать каждое устройство только один раз или получать уведомления о каждом раунде сканирования… возможно ли такое правило в этом случае?)
- person JBA; 23.07.2017
Дополнительная информация: проблема, которую я только что описал выше, возникает на Samsung S4 mini с Android 4.4.2. На Nexus 5x с Android 7.1.2 обратный вызов работает должным образом (многократно уведомляя о присутствии). Любая подсказка о том, что есть в Android 7, чего нет в 4.4...?
- person JBA; 23.07.2017
Пожалуйста, откройте новый вопрос, так как трудно дать подробный ответ в комментариях. Также попробуйте библиотеку версии 2.9. Посмотрите, отличается ли его поведение от последней версии библиотеки, так как в версии 2.10 было изменение, которое может повлиять на это.
- person davidgyoung; 23.07.2017
+ JBA, не могли бы вы связать новый вопрос здесь. Спасибо.
- person imsrgadich; 21.08.2017