开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
基础 api
基础
应用级事件
界面
跳转
多媒体
缓存
文件
位置
网络
设备
系统信息
网络状态
截屏
剪贴板
摇一摇
振动
加速度计
陀螺仪
罗盘
设备方向
拨打电话
获取服务器时间
用户截屏事件
屏幕亮度
设置
添加手机联系人
无障碍
权限引导
扫码
内存不足告警
获取设备电量
蓝牙
低功耗蓝牙
传统蓝牙
ibeacon
wi-fi
短信
worker
数据安全
分享
收藏
自定义通用菜单
更新管理
web-view组件控制
升级支付宝最新版本
隐私信息授权
小程序广告
开放能力 api
开发 > api > 基础 api > 设备 > 蓝牙 > 低功耗蓝牙 > my.writeblecharacteristicvalue
评论
收藏
我的文档
设置

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 - -

蓝牙特征值
注意:

  • 小程序不会对写入数据包大小做限制,但系统与蓝牙设备会限制蓝牙 4.0 单次传输的数据大小,超过最大字节数后会发生写入错误,建议每次写入不超过 20 字节;
  • arrraybuffer 类型的 value 自支付宝 10.3.60 才开始支持,请注意兼容;
  • 若 value 值为 hex string 类型,请确保字符串长度为偶数
writetype string -
支付宝: 10.5.50

蓝牙写模式

枚举值 描述 兼容性
write

有回复写

-
writenoresponse

无回复写

-
success function - -

调用成功的回调函数

fail function - -

调用失败的回调函数

complete function - -

调用结束的回调函数(调用成功、失败都会执行)

fail 回调的参数为 object,error 属性为错误码,errormessage属性为错误消息。
错误码的详细信息请查看蓝牙 api 错误码对照表

代码示例
扫码体验
js 代码
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:如何获取写入的结果?如何确认写入是否成功?

a:

该 api 的 success 回调的第一个参数是不带写入的数据的,仅代表向设备发送该请求成功。

可以通过调用 my.notifyblecharacteristicvaluechange 激活设备上的主动通知(请注意,这需要你的设备支持 notify,详情请查看该文档)。然后使用 my.onblecharacteristicvaluechange 来监听设备上值的变化。可以通过 my.offblecharacteristicvaluechange 来取消监听。

内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图