gpt4 book ai didi

android - 在 Android 中启用蓝牙特性通知(蓝牙低功耗)不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:09 25 4
gpt4 key购买 nike

如果我们在角色上调用setCharacteristicNotification,不在值更改时提供远程通知?如何在蓝牙 LE 中的中央设备上启用远程通知?

最佳答案

要在 Android 上启用远程通知,

setCharacteristicNotification(characteristic, enable) 是不够的。

需要为特性编写描述符。外设必须在创建特征时启用特征通知

一旦启用Notify,它将有一个句柄为0x2902 的描述符。所以我们需要将 BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE 写入描述符。首先将0x2902转换成128位的UUID,就是这样00002902-0000-1000-8000-00805f9b34fb(Base Bluetooth UUID是0000xxxx-0000-1000-8000-00805f9b34fb ).

Code below

 protected static final UUID CHARACTERISTIC_UPDATE_NOTIFICATION_DESCRIPTOR_UUID = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");


* Enable Notification for characteristic
*
* @param bluetoothGatt
* @param characteristic
* @param enable
* @return
*/
public boolean setCharacteristicNotification(BluetoothGatt bluetoothGatt, BluetoothGattCharacteristic characteristic,boolean enable) {
Logger.d("setCharacteristicNotification");
bluetoothGatt.setCharacteristicNotification(characteristic, enable);
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(CHARACTERISTIC_UPDATE_NOTIFICATION_DESCRIPTOR_UUID);
descriptor.setValue(enable ? BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE : new byte[]{0x00, 0x00});
return bluetoothGatt.writeDescriptor(descriptor); //descriptor write operation successfully started?

}

关于android - 在 Android 中启用蓝牙特性通知(蓝牙低功耗)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com