Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android蓝牙LE禁用通知回调耗尽电池?_Java_Android_Bluetooth Lowenergy_Battery_Battery Saver - Fatal编程技术网

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

Java Android蓝牙LE禁用通知回调耗尽电池?,java,android,bluetooth-lowenergy,battery,battery-saver,Java,Android,Bluetooth Lowenergy,Battery,Battery Saver,我正在开发一个连接到蓝牙低能设备的应用程序。该程序的体系结构要求它以突发方式从该设备收集数据。示例:每3分钟收集一次30秒的数据。 这是非常重要的,这是电池效率 对于此设备,我已从BluetoothGattCharacteristic订阅了通知。不幸的是,此特性未授予读取权限,因此必须使用通知 descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); mBluetoothGatt.writeDescr

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

对于此设备,我已从BluetoothGattCharacteristic订阅了通知。不幸的是,此特性未授予读取权限,因此必须使用通知

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

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

mBluetoothGatt.setCharacteristicNotification(characteristic, false);
不扫描数据时。这还会消耗大量的电池寿命吗?我想回拨电话的人还在听。是否需要将描述符更改回其非通知状态

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

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

问题 1) 您认为特征数据在设备端更改的频率如何


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

谢谢您的回答。不幸的是,我感兴趣的特性只能通过通知查看(未授予读取权限)。1.特征信息通过通知每秒发送一次。2.最好两者都有,但在这种情况下,手机的电池更重要。广告数据中没有这个值吗?如果是这种情况,我建议每3分钟连接一次,并阅读特征通知。
mBluetoothGatt.setCharacteristicNotification(characteristic, false);