Как система Android автоматически подключается к сопряженному устройству?
Что я хочу знать:
Мне интересно, как система Android (например, Android-смартфон) автоматически подключается к устройствам, которые были подключены ранее.
НапримерЯ подключаю свою Bluetooth-гарнитуру к своему Android-смартфону в процедуре"turn on scanning/advertising -> click pairing"
в день 1. И когда я включаю рекламу на своей гарнитуре, она автоматически подключается в день 2, 3, 4 и так далее. Дело в том, что мне не нужно снова сканировать свой смартфон, чтобы найти мою (сопряженную) гарнитуру.
Я не могу понять, как система Android находит, что сопряженное устройство включено. Система андроида периодически сканирует в фоновом режиме? Даже если я не нажму кнопку «Сканировать»?
Почему я спрашиваю:
Я хочу, чтобы мое приложение автоматически подключалось к настроенному устройству BLE после создания пары. Мне удается соединиться сcreateBond()
метод, но после этого я не мог найти, как сделать автоподключение. Я знаю, что могу включить функцию автоподключения таким образом,connectGatt(XXX, true, XXX)
, но эта функция автоматического подключения не работает, когда устройство BLE отключается через несколько дней.
Поэтому я хочу, чтобы мое приложение работало как система Android и гарнитура Bluetooth. Но я не мог найти, как работает система Android Bluetooth, даже я копаю коды AOSP.
Я нашел много вопросов (Вот а такжеВот) о проблемах вроде моей но ответов не было.
Заранее спасибо.
Обновить:
я нашел этоbt_btif
активируется (со смартфонами LG и Nexus 5) при включении сопряженной гарнитуры (начать рекламу). Ноbt_btif
не активируется с моим пользовательским устройством BLE ... Что я могу сделать?