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); после обнаружения устройства.