Есть ли библиотека для фонового сканирования устройств Bluetooth-Low-Energy с определенным MAC-адресом? Я знаю, что altbeacon делает это, но, похоже, работает только для устройств BLE типа маяка, а не для других типов. Или есть способ использовать altbeacon для этого? Я просто хочу определить, включено ли определенное устройство и находится ли оно в пределах досягаемости - насколько я понимаю, это должно быть возможно аналогично маякам - я просто не фильтрую некоторые данные в рекламе - только для Mac. Я мог бы реализовать это, но не хочу изобретать велосипед
Непрерывно сканировать BLE-MAC
Ответы (1)
Чтобы предоставить вам надежное решение, которое потребляет мало энергии и работает во всех версиях ОС с их различными API-интерфейсами сканирования, потребуются буквально сотни строк сложного кода. Я знаю, потому что сам это сделал, см. https://github.com/iDevicesInc/SweetBlue/blob/master/src/com/idevicesinc/sweetblue/P_Task_Scan.java, чтобы узнать, с чем вам придется столкнуться.
Поэтому, если вы находитесь на этапе проверки концепции и просто хотите что-то быстрое, попробуйте следующее в своем классе Activity, используя Сладкий Синий:
// Wake lock might not be needed for your application, up to you.
BleManager.get(this).pushWakeLock();
BleManager.get(this).setConfig(new BleManagerConfig()
{{
scanMode = BleScanMode.LOW_POWER;
}});
BleManager.get(this).startPeriodicScan(Interval.FIVE_SECS, Interval.FIVE_SECS, new ScanFilter()
{
@Override public Please onEvent(ScanEvent e)
{
return Please.acknowledgeIf(e.macAddress().equals("DE:CA:FF:C0:FF:EE"));
}
});
Это даст вам сканирование в течение пяти секунд, пять секунд бездействия, и так до тех пор, пока вы не назовете stopPeriodicScan()
.
person
Doug Koellmer
schedule
22.12.2015
Спасибо - проголосовали, но еще не приняли в надежде на лучший способ (lib)
- person ligi; 23.12.2015