Android蓝牙LE禁用通知回拨耗尽电池?

时间:2015-05-26 17:07:54

标签: java android bluetooth-lowenergy battery battery-saver

我正在开发一个连接蓝牙低功耗设备的应用程序。该程序的体系结构要求它以突发方式从该设备收集数据。示例:每3分钟收集一次数据30秒。 这对电池效率非常重要。

对于此设备,我已订阅BluetoothGattCharacteristic的通知。不幸的是,没有给出关于此特性的读取权限,因此必须使用通知。

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

mBluetoothGatt.setCharacteristicNotification(characteristic, true);

我的第一个想法是简单地设置

mBluetoothGatt.setCharacteristicNotification(characteristic, false);

不扫描数据时。这还会消耗大量的电池寿命吗?我假设回调仍然在听。我是否需要将描述符更改回非通知状态?

另一个想法是仅在从传感器读取数据时进行连接,并在完成时断开连接。这意味着每小时重新连接约20次。

1 个答案:

答案 0 :(得分:0)

建议

我建议您阅读特征值,而不是将其设置为通知。这样,您只需要在需要来自BLE设备的数据时进行通信。

问题

1)您认为特征数据在BLE设备端会发生变化的频率。

2)您是否担心BLE设备侧或手机电池电量耗尽?