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

相关推荐

  • 机械方面科研项目

    机械方面科研项目 机械科研项目是现代社会不可或缺的一部分,涵盖了从基础设计到高级制造的全过程。在这些项目中,研究人员使用各种工具和技术来开发新的产品,改进现有产品,或者探索新的制造…

    科研百科 2025年2月9日
    0
  • EPC项目管理策划阶段的四个分解,后续项目管理的四个神器(EPC项目管理思路)

    对于一个EPC项目,根据大多数企业的职能划分和管理程序,常规上我们更习惯于将其划分为五个阶段:商务阶段、策划阶段、执行阶段、验收交付阶段和质保期服务阶段。 对大多数企业而言,策划阶…

    2022年6月16日
    298
  • 国有银行基层党建的的痛点

    国有银行基层党建的痛点 随着经济的不断发展,国有银行已经成为了中国经济的重要组成部分。然而,随着银行业务的不断发展,基层党建也面临着许多痛点。 首先,随着银行业务规模的不断扩大,基…

    科研百科 2024年11月15日
    2
  • 物流同城管理软件(同城物流管理系统)

    客户需求: ■货主找车困难,服务没有标准化,货物安全没有保证 ■司机接货方式比较被动,收入不稳定,货源精确性不高 ■货物运输过程中无法进行有效监督,定位不精准 解决方案: 1. 平…

    2022年6月5日
    250
  • 工程项目微信群管理系统

    工程项目微信群管理系统 随着工程项目的不断增长,微信群管理系统已经成为了工程项目中不可或缺的一部分。这个系统可以帮助项目经理和团队成员在微信群中及时沟通,协调工作,提高项目的效率和…

    科研百科 2025年1月26日
    0
  • 科研项目进展情况

    科研项目进展情况 近年来,随着科技的不断进步,科研项目也在不断地进行中。在这些项目中,有许多涉及到人类健康和福利的研究领域,如神经科学、医学影像、生物技术等。这些研究对于推动医学进…

    科研百科 2025年2月6日
    0
  • 国资计划属于科研项目吗

    国资计划属于科研项目吗? 国资计划是指由政府部门出资支持的研究项目,旨在推动科学技术的发展,提高国家的竞争力。在国资计划中,通常会涉及到各种领域的研究,例如自然科学、工程技术、社会…

    科研百科 2025年4月4日
    1
  • 长城华冠项目管理系统

    长城华冠项目管理系统 长城华冠项目管理系统是一款功能强大的软件系统,用于项目管理和协作。该系统可以帮助企业或组织实现高效的项目管理和协作,从而提高项目质量和效率。 长城华冠项目管理…

    科研百科 2025年1月13日
    0
  • 虚拟局域网、共享云盘、Wi-Fi 6,一台路由器全满足:蒲公英X5体验

    写在前面 贝锐作为国内很早专注于连接领域的企业,早期让很多人认识是因为一款动态域名软件。当时还在上学的我需要上线一个网站,用贝锐的动态域名软件成功地实现内网映射,第一次打开自己做的…

    科研百科 2023年8月29日
    241
  • 你真的了解仓位控制吗?(你真的了解仓位控制吗英语)

    在我个人的投资体系里面,投资的3大错误分别是错误的仓位、错误的个股、错误的价格。假设你买点过高,没关系,如果这个个股足够好,后面自然会给你解套的机会。假设你买错了股票,没关系,如果…

    科研百科 2022年10月12日
    226