Q:调用 my.writeBLECharacteristicValue 的返回值是空对象吗?
A:不是,调用此 API 返回的是您写入成功的值。
Q:调用 my.onBLECharacteristicValueChange 为何监听不到?一定要先写入才能监听到吗?
A:是的,调用此 API 需要先写入才能监听到。为防止多次注册事件监听导致一次事件多次回调,建议每次调用 on
方法监听事件之前,先调用 off
方法,关闭之前的事件监听。
Q:调用 my.writeBLECharacteristicValue 为何报 10014 错误?
A:10014
错误是由于发送的数据为空或者格式错误导致,建议检查写入的数据或 HEX 转化是否有错误。
Q:调用 my.writeBLECharacteristicValue 写入特征值,使用 16 进制的数组可以吗?
A:不可以,写入特征值需要使用 16 进制的字符串,并限制在 20 字节内。
Q:安卓和 iOS 获取到的 deviceId 格式分别是什么样的?
A:
Android 获取到的是蓝牙的 MAC 地址。如:
11:22:33:44:55:66
。iOS 获取到的是蓝牙的 UUID。如:
00000000-0000-0000-0000-00000000****
。
Q:调用 my.startBluetoothDevicesDiscovery 接口为何搜索不到设备?
A:请确保设备已发出广播。若接口传入 services
,请确保设备的广播内容中包含 service
的 UUID。
Q:如何解决连接设备失败?
A:请确保传入的 deviceId
正确,并且设备发出的信号足够强。在信号弱的情况下,可能会出现连接设备失败。
Q:如何解决写 / 读数据失败?
A:
请确保传入的
deviceId
、serviceId
、characteristicId
格式正确。deviceId
已连接上(可调用my.onBLEConnectionStateChanged
监听连接状态的变化;调用my.getConnectedBluetoothDevices
获取处于已连接状态的设备。)在连接状态下写入方法。
检查
characteristicId
属于此service
。此特征值支持写 / 读。
Q:如何收到数据通知?
A:
请确保已调用
my.notifyBLECharacteristicValueChange
方法,并且传入的参数正确。请确保传入的
characteristicId
特征值支持notify
或indicate
操作。请确保硬件已发出通知。
注意基本流程顺序,在连接之后就调用
my.notifyBLECharacteristicValueChange
方法。
Q:为何事件回调会多次被调用?
A:由于多次使用匿名函数注册监听了同一事件。所以建议在每次调用 on
方法监听事件之前,先调用 off
方法关闭之前的事件监听。