0

Я пытаюсь подключиться к периферийному устройству BLE с помощью bleDevice.connectGatt(this, true, gattCallback) из класса приложения Application. Устройство будет отправлять рекламные пакеты только каждые несколько часов.Android: подключение к устройству Bluetooth LE в фоновом режиме

Это работает нормально, пока приложение открыто/активно. Когда я выключу дисплей и подождите несколько минут, а затем включите периферию, gattCallback никогда не вызывается.

Есть ли другой способ пробудить приложение, когда устройство bluetooth оживает, чем создание службы переднего плана?

ответ

0

Вы можете сканировать это устройство, начиная с Lollipop, устройство будет разбужено, когда будет получен результат сканирования. Также с Lollipop вы можете установить фильтр для сканирования, и если ваше периферийное устройство имеет фиксированный адрес mac, который вы можете использовать в качестве фильтра, ваше устройство просыпается, как только ваше периферийное устройство начнет рекламу.

Помимо этого вы можете использовать AlarmManager для периодического пробуждения устройства.

Смежные вопросы