uni.notifyBLECharacteristicValueChange({state:false,……}) 无效
- 发布:2020-09-28 20:12
- 更新:2022-11-17 14:30
- 阅读:3364
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows10
HBuilderX类型: Alpha
HBuilderX版本号: 2.9.0
手机系统: iOS
手机系统版本号: IOS 14
手机厂商: 苹果
手机机型: iPhone8
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
打开蓝牙链接,
await uni.notifyBLECharacteristicValueChange({state:true,……})
然后
await uni.notifyBLECharacteristicValueChange({state:false,……}) 这里无效
两个 characteristic 时 notifyBLECharacteristicValueChange 有问题。
打开蓝牙链接,
await uni.notifyBLECharacteristicValueChange({state:true,……})
然后
await uni.notifyBLECharacteristicValueChange({state:false,……}) 这里无效
两个 characteristic 时 notifyBLECharacteristicValueChange 有问题。
预期结果:
希望和微信逻辑一样 uni.notifyBLECharacteristicValueChange({state:false,……}) 能停止通知。
多个特征时 notifyBLECharacteristicValueChange 能区分。
希望和微信逻辑一样 uni.notifyBLECharacteristicValueChange({state:false,……}) 能停止通知。
多个特征时 notifyBLECharacteristicValueChange 能区分。
实际结果:
uni.notifyBLECharacteristicValueChange({state:false,……}) 不能停止通知
notifyBLECharacteristicValueChange 数据混乱。
uni.notifyBLECharacteristicValueChange({state:false,……}) 不能停止通知
notifyBLECharacteristicValueChange 数据混乱。
bug描述:
启用通知后 无法用 uni.notifyBLECharacteristicValueChange({state:false,……}) 停止通知。
还有当有多个特征值时,onBLECharacteristicValueChange 数据严重混乱,
已经用 characteristicId 判断哪个特征id了,但是特征id会改变。
假设特征A,每200毫秒发送一个数据,打开通知 然后用 writeBLECharacteristicValue 往 特征B发数据,
那么onBLECharacteristicValueChange characteristicId 可能就会是 永远是A的或者永远是B的
没有办法区分哪个 characteristicId 发送的数据了,要么全部是A的数据,要么全部是B的数据
同样代码用 发布微信小程序测试完全正常,数据也能区分,app就很混乱。
uni.notifyBLECharacteristicValueChange({state:false,……}) 这里无效。这个功能应该是没有现实。你什么需求需要这个功能了?
-
AJXMJC (作者)
数据从arduino串口发送通知过来,频率太高,
一直发送,时间长了低端手机会有延时,所有想做成按需通知。
需要时打开通知,不需要时关闭通知。2020-10-08 13:59
AJXMJC (作者)
安卓手机测试,特征A有 read、write,特征B有read、notify,然而
uni.readBLECharacteristicValue({ deviceId: xx, serviceId: xx, characteristicId: 特征A })
竟然出错,
{ "errMsg": "readBLECharacteristicValue:fail property not support", "errCode": 10007 }
“当前特征值不支持此操作”,但是 特征A 是有读写权限的,ISO也能正常读取。
app端蓝牙bug太多了,小程序就没有任何问题。
CLP
notifyBLECharacteristicValueChange 数据混乱-----------这个问题应该不存在。订阅多个特征值的时候,监听到的返回数据是有特征值ID的。 你说的特征值id怎么会变了??
2020-09-30 18:36
CLP
另外,安卓有这个问题吗?
2020-09-30 18:36
CLP
onBLECharacteristicValueChange. 只调用一次
2020-09-30 18:47
AJXMJC (作者)
回复 CLP: 是多个特征值,特征值会改变
2020-10-08 13:56
CLP
回复 AJXMJC: 多个特征值没关系啊,订阅了多个特征值,监听返回的数据里用特征值来区分就可以了
2020-10-09 11:49
AJXMJC (作者)
回复 CLP: 现在问题就在这里了,特征id改变,B特征打开通知后,往A特征write并read 后,
onBLECharacteristicValueChange 里面的 特征id就全部变成特征A的id,用特征B的id去判断根本不会有数据呀
2020-10-09 16:16
CLP
回复 AJXMJC: 你QQ多少
2020-10-09 16:50
AJXMJC (作者)
回复 CLP: 已经私信发了
2020-10-09 17:04