Android: Можно ли автоматически подключаться к устройству Bluetooth LE, когда оно входит в диапазон, и начинает рекламу?
Я ищу способ автоматического подключения Android-устройства к Bluetooth LE (4.0 Smart), когда он входит в диапазон (и начинает рекламу). Я ожидаю, что он будет работать как наушники Bluetooth - при включении они автоматически подключатся к парному телефону (если он находится в диапазоне).
Я думал о запуске службы в фоновом режиме, которая будет периодически (каждые 50-100 мс) проверять рекламу. Однако одной из основных проблем является время автономной работы устройства Android.
Может кто-нибудь может посоветовать, какой был бы лучший способ реализовать такую функциональность на Android 4.3 и выше?
Спасибо заранее!
Ответы
Ответ 1
Вы можете зарегистрировать широковещательный приемник для приема широковещательных сообщений при обнаружении устройства Bluetooth. Подробнее и пример кода см. В разделе руководства API Bluetooth.
Также посмотрите на тему Bluetooth Low Energy.
Наконец, взгляните на этот поток, который в основном является тем же самым вопросом.
Ответ 2
установите параметр autoConnect в connectGatt() в значение true. (второй параметр)
Ответ 3
Собственно, это работает только для стандартного Bluetooth. Для Bluetooth smart ACTION_ACL_CONNECTED/ACTION_ACL_DISCONNECTED
трансляции не работают.
Для BLE вы должны работать с API и обратными вызовами в mBluetoothAdapter.startLeScan(mLeScanCallback);
после обнаружения устройства.