my.writeblecharacteristicvalue(object object)
支付宝客户端 10.0.18 及更高版 或更高版本; 若版本较低,建议采取 兼容处理 。
支小宝客户端 支持
安诊儿客户端 支持
小程序开发者工具: 不支持。请使用真机调试
主体: 企业支付宝小程序 、 个人支付宝小程序
向低功耗蓝牙设备特征值中写入数据。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 兼容性 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
deviceid | string | - | 是 | - | 蓝牙设备 id。该 deviceid 对应的蓝牙设备需要已经通过 my.connectbledevice 建立连接 |
||||||||||
serviceid | string | - | 是 | - | 蓝牙服务的 uuid。可调用 my.getbledeviceservices 获取 |
||||||||||
characteristicid | string | - | 是 | - | 蓝牙特征的 uuid,该值的 properties(属性)中 write 值必须是 true。可调用 my.getbledevicecharacteristics 获取 |
||||||||||
value | arraybuffer | string | - | 是 | - | 蓝牙特征值
|
||||||||||
writetype | string | - | 否 | 支付宝: 10.5.50 |
蓝牙写模式 |
||||||||||
|
|||||||||||||||
success | function | - | 否 | - | 调用成功的回调函数 |
||||||||||
fail | function | - | 否 | - | 调用失败的回调函数 |
||||||||||
complete | function | - | 否 | - | 调用结束的回调函数(调用成功、失败都会执行) |
fail 回调的参数为 object,error
属性为错误码,errormessage
属性为错误消息。
错误码的详细信息请查看蓝牙 api 错误码对照表。
page({
data: {
// 本示例值为假数据,实际开发中 deviceid 可使用 my.startbluetoothdevicesdiscovery api 和 my.onbluetoothdevicefound api 去获取。
deviceid: "55829650-fb8a-4c86-1f80-d8dec4dfdc5d",
// 本示例值为假数据,实际开发中 serviceid 可在 my.getbledeviceservices 接口中获取。
serviceid: "44:90:bb:99:41:a5",
// 本示例值为假数据,实际开发中 characteristicid 可在 my.getbledevicecharacteristics 接口中获取。
characteristicid: "2a19",
// buffer 值是十六进制字符串或 arraybuffer
buffer:'1a2f'
},
// 读取设备特征值中的数据
writeblecharacteristicvalue() {
my.writeblecharacteristicvalue({
deviceid: this.data.deviceid,
serviceid: this.data.serviceid,
characteristicid: this.data.characteristicid,
value: this.data.buffer,
success: (res) => {
console.log(res);
},
fail: (error) => {
console.log(error);
},
});
},
});
-
tip若想写入的值是二进制数据,则需要对其进行 hex 编码转成 16 进制字符串或使用 javascript 的 arraybuffer 对象和 dataview 对象将其转为 arraybuffer 后再写入。
-
tip并行调用多次写接口存在写失败的可能性。
-
tip若入参 value 值为 arraybuffer 类型,请确保支付宝 app 是 10.3.60 及以上版本。
q:如何获取写入的结果?如何确认写入是否成功?
该 api 的 success 回调的第一个参数是不带写入的数据的,仅代表向设备发送该请求成功。
可以通过调用 my.notifyblecharacteristicvaluechange
激活设备上的主动通知(请注意,这需要你的设备支持 notify,详情请查看该文档)。然后使用 my.onblecharacteristicvaluechange
来监听设备上值的变化。可以通过 my.offblecharacteristicvaluechange
来取消监听。