收藏
回答

关于小程序蓝牙,serviceId和characteristicId

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 wx. getBLEDeviceServices 客户端 6.7.1 2.2.3

连接的蓝牙设备是58mm热敏打印机。

使用 wx.onBluetoothDeviceFound找到设备,然后wx. getBLEDeviceServices返回设备的services,

有四个值,每个都是primary。

根据service的uuid获取的特征值也有很多,就不一一列举。

我拿其中的几个值试了一下,打印机没有反应。最后想问wx.writeBLECharacteristicValue所需要的serviceId和characteristicId需要满足什么条件?


最后一次编辑于  2018-08-27
回答关注问题邀请回答
收藏

3 个回答

  • 宋涛 办会家 banhuijia.com
    宋涛 办会家 banhuijia.com
    2018-12-06

    我在处理同样的问题,看起来只要是 isPrimary : true 就可以。但实际上,你需要挨个试一下,因为每一个serviceId 对应不同的

    characteristicId,而不同的 characteristicId 又具有不同的 notify、read和write权限。只要是找到一个三个权限都有的,否则只能用其中某个权限。我现在一切返回正常,但打印无效。最痛恨的是,我用另一个小程序可以打印。
    2018-12-06
    赞同
    回复
  • 徐正洋
    徐正洋
    2018-08-29

    楼主,借楼问个问题,请问你连接蓝牙装置的时候,遇到连接超时是怎么处理的吗?我现在有一个蓝牙打印机,通过createBLEConnection ,接口连接,试了很多次都是10012的连接超时, 我后面在手机上先把这个蓝牙配对成功后再去连接也连接不上;请问我的步骤是不是有什么问题呀?我这个蓝牙打印机本身就需要配对设置

    2018-08-29
    赞同
    回复 2
    • 杨🐷大杰
      杨🐷大杰
      2018-08-30

      我的步骤是 1. startBluetoothDevicesDiscovery,开启蓝牙搜索  2. onBluetoothDeviceFound,找到设备 3. createBLEConnection,使用之前得到的deviceId连接设备 4. getBLEDeviceServices,getBLEDeviceCharacteristics 得到设备serviceId和特征值。最后传输数据。你确认一下你的设备是不是低功耗蓝牙,传统蓝牙是连接不上的


      2018-08-30
      回复
    • 徐正洋
      徐正洋
      2018-08-30回复杨🐷大杰

      谢谢楼主;我排查的原因应该是打印机不行,我去搜索现有小程序产品去测试连接也连不上

      2018-08-30
      回复
  • Gump
    Gump
    2018-08-28

    write:true

    2018-08-28
    赞同
    回复