收藏
回答

蓝牙发送消息返回1004找不到特征值?

调用wx.createBLEConnection(Object object)连接成功后

我知道了设备的serviceId ,特征值Id 为什么调用wx.writeBLECharacteristicValue(Object object) 会报10004找不到特征值

必须要先调用 

wx.getBLEDeviceServices()

wx.getBLEDeviceCharacteristics()

wx.writeBLECharacteristicValue()

才能写入成功,但是我的serviceId、特征值(写死的),还是同一个!!!





回答关注问题邀请回答
收藏

1 个回答

  • 依号
    依号
    2020-08-13

    调用

    wx.getBLEDeviceServices()
    
    wx.getBLEDeviceCharacteristics()
    


    可以设置几个变量分别记录几个特征id,需要时再来取。wx.writeBLECharacteristicValue() 需要写入权限的特征id、服务id,跟设备id,才能成功调用

    2020-08-13
    有用
    回复 5
    • 张无忌
      张无忌
      2020-08-13
      同样的serviceId、特征值,必须要调用getBLEDeviceServices,getBLEDeviceCharacteristics之后才能写入成功
      2020-08-13
      回复
    • 张无忌
      张无忌
      2020-08-13
      直接调用writeBLECharacteristicValue 会报10004
      2020-08-13
      回复
    • 依号
      依号
      2020-08-13回复张无忌
      你之前连接设备成功,不要断开,之后再调用一次getBLEDeviceServices,getBLEDeviceCharacteristics就可以了,之后就可以一直调用writeBLECharacteristicValue,设备断开之后,需再次连接成功并且再调用一次getBLEDeviceServices,getBLEDeviceCharacteristics才可以。你需要监听一下设备断开之后的重连操作吧
      2020-08-13
      回复
    • 张无忌
      张无忌
      2020-08-13
      我知道了设备的serviceId ,特征值Id 为什么还要调用getBLEDeviceServices,getBLEDeviceCharacteristics
      2020-08-13
      回复
    • 依号
      依号
      2020-08-17回复张无忌
      确实有点反逻辑,在钉钉小程序上就可以像你那样,而在微信小程序上就不行,可能是调用getBLEDeviceServices,getBLEDeviceCharacteristics时有一个注册服务的过程,而直接调用就会没找到
      2020-08-17
      回复
登录 后发表内容
问题标签