Android Bluetooth LE отключает обратный вызов уведомлений, разряжая батарею?

Я разрабатываю приложение, которое подключается к устройству Bluetooth с низким энергопотреблением. Архитектура программы требует, чтобы она собирала данные с этого устройства пачками. Пример: собирать данные в течение 30 секунд каждые 3 минуты. Для этого очень важно, чтобы батарея была эффективной.

Для этого устройства я подписался на уведомления от BluetoothGattCharacteristic. К сожалению, разрешение на чтение этой характеристики не дается, поэтому необходимо использовать уведомления.

descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);     
mBluetoothGatt.writeDescriptor(descriptor);

а также

mBluetoothGatt.setCharacteristicNotification(characteristic, true);

Моя первая идея - просто установить

mBluetoothGatt.setCharacteristicNotification(characteristic, false);

когда не сканирует данные. Будет ли это по-прежнему потреблять много времени автономной работы? Я предполагаю, что обратные вызовы все еще прослушиваются. Должен ли я изменить дескриптор обратно в состояние без уведомлений?

Другой идеей было бы подключаться только при считывании данных с датчиков и отключаться по завершении. Это будет означать повторное подключение ~ 20 раз в час.


person DeeCeptor    schedule 26.05.2015    source источник


Ответы (1)


Предложение

Я предлагаю читать значения характеристик вместо того, чтобы устанавливать их для уведомления. Таким образом, вам потребуется общаться только тогда, когда вам нужны данные с устройства BLE.

Вопросы

1) Как часто, по вашему мнению, данные о характеристиках будут изменяться на стороне устройства BLE.

2) Вы беспокоитесь о разрядке батареи на стороне устройства BLE или батареи телефона ??

person AAnkit    schedule 27.05.2015
comment
Спасибо за ответы. К сожалению, интересующая меня характеристика может быть просмотрена только с помощью уведомлений (без разрешения на чтение). 1. Информация о характеристиках отправляется через уведомления один раз в секунду. 2. Желательно оба, но в данном случае важнее батарея телефона. - person DeeCeptor; 27.05.2015
comment
это значение не доступно в рекламных данных? Если это так, я предлагаю делать соединение каждые 3 минуты и читать уведомления о характеристиках. - person AAnkit; 28.05.2015