Bluetooth с низким энергопотреблением

Технология Bluetooth Low Energy (BLE), доступная в Android 4.3 и выше, создает короткие соединения между устройствами для передачи пакетных данных. BLE остается в спящем режиме, когда не подключена. Это позволяет BLE обеспечивать меньшую пропускную способность и меньшее энергопотребление по сравнению с классическим Bluetooth. BLE идеально подходит для таких приложений, как пульсометр или беспроводная клавиатура. Для использования BLE устройства должны иметь чипсет, поддерживающий BLE.

Выполнение

Все существующие профили приложений BLE основаны на профиле Generic Attribute (GATT) . Когда устройство на базе Android взаимодействует с устройством BLE, устройство, отправляющее информацию, является сервером, а устройство, получающее информацию, — клиентом. Android включает API для разработчиков BLE , в том числе API для взаимодействия между серверами GATT и клиентами GATT. Чтобы в полной мере использовать API BLE, необходимо реализовать требования Android Bluetooth HCI .

режимы устройства

При использовании BLE устройство на базе Android может выступать в качестве периферийного устройства, центрального устройства или и того, и другого. Периферийный режим позволяет устройствам отправлять рекламные пакеты. Центральный режим позволяет устройствам сканировать наличие рекламы. Устройство Android, выступающее одновременно в качестве периферийного и центрального устройства, может взаимодействовать с другими периферийными устройствами BLE, отправляя рекламу в периферийном режиме. Устройства, поддерживающие Bluetooth 4.1 и ниже, могут использовать BLE только в центральном режиме. Более старые чипсеты устройств могут не поддерживать периферийный режим BLE.

сканирование BLE

Устройство под управлением Android может более эффективно находить и сканировать определенные устройства Bluetooth при использовании BLE. API BLE позволяют разработчикам приложений создавать фильтры для поиска устройств с минимальным участием хост-контроллера.

Сканирование местоположения

Службы определения местоположения устройства могут использовать Bluetooth для обнаружения Bluetooth-маяков и предоставления более точного определения местоположения. Вот как пользователи могут включить эту функцию:

  1. Перейдите в Настройки > Безопасность и местоположение > Местоположение .
  2. Убедитесь, что переключатель «Местоположение Вкл. / Выкл. » находится в положении «Вкл.» .
  3. Перейти в режим .
  4. Выберите режим высокой точности или режим экономии заряда батареи .

В Android 11 и более ранних версиях отдельным приложениям требуются разрешения на определение местоположения для использования сканирования BLE, даже если они сканируют только для поиска устройств для подключения. Если пользователь отключает сканирование местоположения или не предоставляет приложению разрешения на определение местоположения, то приложение не получит результаты сканирования BLE.

В Android 12 и более поздних версиях разрешения BLUETOOTH_SCAN , BLUETOOTH_ADVERTISE и BLUETOOTH_CONNECT позволяют приложениям сканировать ближайшие устройства без необходимости запрашивать разрешение на определение местоположения. Для получения дополнительной информации см. раздел «Разрешения Bluetooth» .

Пользователи могут отключить фоновое сканирование Bluetooth на системном уровне, перейдя в «Настройки» > «Безопасность и местоположение» > «Местоположение» > «Сканирование» и переведя переключатель сканирования Bluetooth в положение «выкл». Это не повлияет на сканирование BLE для определения местоположения или локальных устройств.

Результаты сканирования фильтра

В Android 6.0 и выше реализована функция сканирования BLE и сопоставления фильтров на контроллере Bluetooth. Устройство может фильтровать результаты сканирования и сообщать об обнаруженных и потерянных BLE-устройствах процессору приложений (AP). Фильтрация также работает для пакетного сканирования, что помогает экономить энергию, поскольку устройство перекладывает задачу сканирования BLE на встроенное ПО. Пакетное сканирование уменьшает частоту пробуждения AP из-за сканирования BLE-устройств или маяков.

Функция OnFound / OnLost реализована в контроллере Bluetooth и затем тестируется для подтверждения того, что устройства BLE не пропускаются при сканировании. Это обеспечивает экономию энергии, а также может обеспечить следующие преимущества:

  • В случае события OnFound , основная точка доступа активируется при обнаружении конкретного устройства.
  • В случае события OnLost точка доступа активируется, когда конкретное устройство не удается обнаружить.
  • Приложения, использующие данную платформу, получают меньше нежелательных уведомлений, когда находящееся поблизости устройство находится в зоне действия.
  • Непрерывное сканирование позволяет получать уведомления от приложений-фреймворков, когда устройство выходит из зоны действия.

Фильтр сканирования может основываться на обнаружении рекламных сообщений устройства (событие OnFound ). Слой Java может задавать такие параметры, как дата первого обнаружения (или указанное количество рекламных сообщений с момента первого обнаружения). Реализуйте фильтрацию BLE с помощью команды HCI Advertising Packet Content Filter .