IOS蓝牙writeBLECharacteristicValue报错1004
发布于 6 年前 作者 cuixiulan 5208 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

手机:iphone 6

系统:IOS 12.2

条件:在预先知道serviceId(服务ID)和characteristicId(写入特征ID)的情况下。

操作流程:初始化蓝牙模块(openBluetoothAdapter)-> 连接蓝牙设备(createBLEConnection) -> 写入数据(writeBLECharacteristicValue

返回结果:1004 (没有找到指定服务


PS:更改操作流程即可写入成功。

操作流程:初始化蓝牙模块(openBluetoothAdapter)-> 连接蓝牙设备(createBLEConnection) ->读取服务(getBLEDeviceServices)->根据服务ID获取特征(getBLEDeviceCharacteristics)-> 写入数据(writeBLECharacteristicValue

返回结果:0 (正常

预测问题:在IOS系统下,只有当调用getBLEDeviceServices和getBLEDeviceCharacteristics后才能调用writeBLECharacteristicValue;估计是只有当调用getBLEDeviceServices和getBLEDeviceCharacteristics的时候才会填充设备连接的服务ID和特征ID,之后调用写入方法的时候小程序会自己和内部数据对比服务ID是否存在,因此导致调用写入方法的时候会报错1004

  • 预期表现

操作流程:初始化蓝牙模块(openBluetoothAdapter)-> 连接蓝牙设备(createBLEConnection) -> 写入数据(writeBLECharacteristicValue

返回结果:0 (正常)

  • 复现路径

手机:iphone

系统:IOS

条件:在预先知道serviceId(服务ID)和characteristicId(写入特征ID)的情况下。

操作流程:初始化蓝牙模块(openBluetoothAdapter)-> 连接蓝牙设备(createBLEConnection) -> 写入数据(writeBLECharacteristicValue

  • 提供一个最简复现 Demo
回到顶部