连接的蓝牙设备是58mm热敏打印机。
使用 wx.onBluetoothDeviceFound找到设备,然后wx. getBLEDeviceServices返回设备的services,
有四个值,每个都是primary。
根据service的uuid获取的特征值也有很多,就不一一列举。
我拿其中的几个值试了一下,打印机没有反应。最后想问wx.writeBLECharacteristicValue所需要的serviceId和characteristicId需要满足什么条件?
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | 需求 | wx. getBLEDeviceServices | 客户端 | 6.7.1 | 2.2.3 |
3 个回答
我在处理同样的问题,看起来只要是 isPrimary : true 就可以。但实际上,你需要挨个试一下,因为每一个serviceId 对应不同的
characteristicId,而不同的 characteristicId 又具有不同的 notify、read和write权限。只要是找到一个三个权限都有的,否则只能用其中某个权限。我现在一切返回正常,但打印无效。最痛恨的是,我用另一个小程序可以打印。楼主,借楼问个问题,请问你连接蓝牙装置的时候,遇到连接超时是怎么处理的吗?我现在有一个蓝牙打印机,通过createBLEConnection ,接口连接,试了很多次都是10012的连接超时, 我后面在手机上先把这个蓝牙配对成功后再去连接也连接不上;请问我的步骤是不是有什么问题呀?我这个蓝牙打印机本身就需要配对设置
我的步骤是 1. startBluetoothDevicesDiscovery,开启蓝牙搜索 2. onBluetoothDeviceFound,找到设备 3. createBLEConnection,使用之前得到的deviceId连接设备 4. getBLEDeviceServices,getBLEDeviceCharacteristics 得到设备serviceId和特征值。最后传输数据。你确认一下你的设备是不是低功耗蓝牙,传统蓝牙是连接不上的
谢谢楼主;我排查的原因应该是打印机不行,我去搜索现有小程序产品去测试连接也连不上
write:true