【问题标题】:Android Bluetooth LE disabling notification callback drain battery?Android蓝牙LE禁用通知回调耗尽电池?
【发布时间】:2015-05-26 17:07:53
【问题描述】:

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

对于这个设备,我已经订阅了来自 BluetoothGattCharacteristic 的通知。不幸的是,这个特性没有被授予读取权限,所以必须使用通知。

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

mBluetoothGatt.setCharacteristicNotification(characteristic, true);

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

mBluetoothGatt.setCharacteristicNotification(characteristic, false);

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

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

【问题讨论】:

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


    【解决方案1】:

    建议

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

    问题

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

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

    【讨论】:

    • 感谢您的回答。不幸的是,我感兴趣的特性只能通过通知查看(未授予读取权限)。 1. 特征信息每秒通过通知发送一次。 2. 最好两者都有,但在这种情况下手机的电池更重要。
    • 广告数据中没有这个值吗?如果是这种情况,我建议每 3 分钟建立一次连接并阅读特征通知。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多