wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序打印机

1 微信小程序蓝牙功能开发概述

  • 第一步 判断当前微信版本,是否支持蓝牙 通信
  • 第二步 打开蓝牙
  • 第三步扫描设备
  • 第四步连接设备
  • 第五步 获取服务与特征值 看是否支持读写数据操作
  • 第六步 发送数据

本文章 是记录的第五步中的内容点

2 wx.getBLEDeviceCharacteristics

wx.getBLEDeviceCharacteristics 用来获取
获取蓝牙设备某个服务中所有特征值(characteristic)

关键核心代码如下

2.1 获取连接蓝牙的所支持的服务

我这一步是已经扫描到了可用的蓝牙设备,获取到其中的一个设备的 deviceId,callBack是我设置的一个回调函数

//获取蓝牙设备所有服务(service)function getBLEDeviceServices(deviceId, callBack) { console.log("连接低功耗蓝牙设备成功 开始获取蓝牙服务" deviceId) wx.getBLEDeviceServices({ deviceId, success: (res) => { console.log("连接低功耗蓝牙设备成功 获取蓝牙服务成功" deviceId) console.log("getBLEDeviceServices success") for (let i = 0; i < res.services.length; i ) { if (res.services[i].isPrimary) { getBLEDeviceCharacteristics(deviceId, res.services[i].uuid, callBack) } } }, fail: (res) => { console.log("连接低功耗蓝牙设备成功 获取蓝牙服务失败" deviceId) console.log("getBLEDeviceServices fail") console.log("获取蓝牙服务失败:" JSON.stringify(res)) } })}

微信官方文档这里有有问题的,我的实践是在部分安卓手机有,是有多个服务在可用状态,如果这里return 回去了,会导致下一步中判断不可输出数据问题,实际上是可以输出的

wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序打印机

2.2 获取特征值关键核心代码

需要根据蓝牙设备的 deviceId 与 serviceId 服务ID来获取特征值,如是否支持读取蓝牙设备的数据或者是否支持向蓝牙设备中写数据,都是通过特征值来判断的

在部分安卓手机中,可能会有多个 可用服务,也就是多个 serviceId,每个serviceId中提供的特征值不一样,需要组合起来使用

wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序打印机

function getBLEDeviceCharacteristics(deviceId, serviceId, callBack) { wx.getBLEDeviceCharacteristics({ deviceId, serviceId, success: (res) => { console.log('getBLEDeviceCharacteristics success', res.characteristics) for (let i = 0; i < res.characteristics.length; i ) { let item = res.characteristics[i] console.log("characteristics " gloableBlueName " read " item.properties.read) console.log("characteristics " gloableBlueName " write " item.properties.write) console.log("characteristics " gloableBlueName " notify " item.properties.notify) console.log("characteristics " gloableBlueName " indicate " item.properties.indicate) if (item.properties.read) { //可读数据 wx.readBLECharacteristicValue({ deviceId, serviceId, characteristicId: item.uuid, }) } if (item.properties.write) { // 可写数据 } } } }, fail(res) { console.error('获取特征值失败:', res) }, complete() { if (callBack) { console.log('回调 canWrite ' canWrite.toString()); //我这里主要是用到了可写数据操作 callBack(canWrite); } } })

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月3日 上午10:40
下一篇 2023年4月3日 上午10:50

相关推荐

  • 班组穿透式管理总结汇报

    班组穿透式管理总结汇报 随着企业的发展,我们的班组也逐渐壮大起来。在过去的一段时间里,我们采取了一些穿透式管理措施,取得了一些显著的成绩。下面,我将对班组的穿透式管理进行总结汇报。…

    科研百科 2024年11月18日
    10
  • 环翠楼街道:“停车自治”管理模式助推解决“城”长烦恼(环翠楼停车场收费)

    记者 陈乃彰 崔萌华 通讯员 戚丽丽 停车难,是寸土寸金的老城区固化的“城”长烦恼。业态涌入与老城复兴相伴而行,停车管理模式与停车场等基础配套设施也需同步更新。环翠楼街道地处威海市…

    科研百科 2024年6月29日
    87
  • 采购及合同管理

    采购及合同管理是商业活动中至关重要的一环。在企业的采购及合同管理过程中,正确的决策和有效的执行可以帮助企业实现成本领先、质量控制、资源优化等目标。本文将介绍采购及合同管理的基本概念…

    科研百科 2024年9月2日
    33
  • 开展标后稽查加强建设工程施工项目部管理工作(标后稽查如何开展)

    近日,由鹤城区建设工程招投标突出问题专项整治工作办公室和住建局组织稽查小组对全区招标工程项目开展标后稽查。 稽查小组主要对全区在建项目开展实地检查,重点检查招投标实施情况、中标单位…

    科研百科 2022年7月24日
    302
  • 创新项目(小小说)(创新项目范文)

    这天,我到生技部去查阅一份文件。刚走到生技部办公室门前,从里面忽然传来了一阵“哈哈”的大笑声。我向里一瞅,笑声是从生技部主任老胡嘴里发出来的。他站在自己的办公桌前,抖动着一脸的沧桑…

    科研百科 2024年4月14日
    90
  • 胡耀华科研项目

    胡耀华科研项目 胡耀华科研项目是一项致力于探索宇宙奥秘的庞大计划。该项目旨在通过先进的科学技术手段,研究宇宙的起源、演化和结构。该项目由胡耀华先生发起,旨在为人类揭示宇宙的本质和秘…

    科研百科 2025年2月22日
    0
  • 天津工会援疆资金向基层一线倾斜 精准精细推进帮扶项目落地落实

    原标题:天津工会援疆资金向基层一线倾斜(引题) 精准精细推进帮扶项目落地落实(主题) 中工网讯 (工人日报-中工网记者张玺 通讯员程志会)记者近日从天津市总工会获悉,天津市、区两级…

    科研百科 2022年12月17日
    207
  • 中国建筑红色党建品牌

    中国建筑红色党建品牌 自2016年中国建筑启动“红色党建”品牌以来,中国建筑一直秉持“以党建为引领,促进企业发展”的理念,积极探索符合自身实际的红色党建路径。如今,中国建筑的红色党…

    科研百科 2024年11月6日
    0
  • 宝坻农业项目管理系统

    宝坻农业项目管理系统 随着现代科技的不断发展,农业项目管理系统已经成为农业领域不可或缺的一部分。宝坻农业项目管理系统是一款功能强大、易于使用、高效的项目管理软件,为农业项目的开发、…

    科研百科 2024年12月25日
    1
  • 项目管理可视化系统

    项目管理可视化系统 随着数字化时代的到来,项目管理变得更加复杂和高效。传统的纸质文件和口头传达已经无法满足现代项目管理的需求。因此,一种可视化的项目管理系统被提出并不断发展。 项目…

    科研百科 2024年8月17日
    36