Android ble onCharacteristicChanged()无法触发BluetoothGattCallback

在实现BLE功能时,遇到Android系统的BluetoothGattCallback的onCharacteristicChanged()方法未被触发的问题。尽管硬件正常发送数据,且通过市场上的BLE工具能接收到数据。已检查UUID正确,也设置了Characteristic的通知。问题待解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 近日公司有搞BLE的需求,回调接口中的onCharacteristicChanged()方法,一直没有执行,但是的的确确硬件那边是发到这边来了,但是怎么也收不掉。从市场上下的其他的BLE工具确实是收到。

 进行了以下检查

1 检查用作notify的Characteristic的UUID是否正确

2 setCharacteristicNotification(chara, true)  检测已经设置

3

BluetoothGattDescriptor descriptor = chara.getDescriptor(com.hengda.smart.smartpen.bluetooth.HD_Profile.UUID_CHAR_NOTIFY_DIS);
if(descriptor.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE)){
  
}  已设置已经写
==============================================================================================================================================
最终解决方案
硬件这边作为notify的Characteristic有两个Descriptor应该讲其的的两个Descriptor的值都设置为ENABLE_INDICATION_VALUE
for(BluetoothGattDescriptor dp:chara.getDescriptors()){
   dp.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
   gatt.writeDescriptor(dp);
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值