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

相关推荐

  • 韶关市重点项目管理系统

    韶关市重点项目管理系统 韶市重点项目管理系统是韶市政府推出的一款用于管理重点项目的软件系统。该系统旨在提高韶市重点项目的审批效率,优化项目进展,降低项目成本,提高项目质量,为韶市经…

    科研百科 4天前
    1
  • 企业的oa管理系统

    企业oa管理系统:提升企业效率的利器 随着现代企业竞争的不断加剧,企业需要不断提升自身的效率和竞争力,而传统的手工管理已经无法满足现代企业的需求,因此企业oa管理系统应运而生。企业…

    科研百科 2024年11月6日
    0
  • 项目管理 量化

    项目管理量化: 实现高效、准确、可控的项目执行 项目管理作为现代企业运营的重要一环,其重要性不言而喻。然而,传统的项目管理方式往往依赖于经验、主观判断和手工记录,难以实现高效的、准…

    科研百科 2024年9月16日
    30
  • 重庆出台大型赛会活动志愿服务项目经费管理办法

    重庆市财政局、共青团重庆市委日前出台《大型赛会活动志愿服务项目经费管理办法(试行)》,将目前常年在重庆举办且管理较为成熟的大型赛会活动纳入清单,市财政局、团市委认定后动态调整,清单…

    科研百科 2022年6月6日
    310
  • 内控体系工作情况报告(内控体系工作情况报告怎么写)

    内部控制作为企业生产经营活动自我调节和自我约束的内在机制,其建立、健全及实施是企业生产经营成败的关键。为全面掌握集团当前内部控制体系建设与监督工作,科学谋划下一步内控体系建设工作,…

    科研百科 2024年7月11日
    43
  • 配送管理进度计划

    配送管理进度计划 配送管理是物流管理中的重要组成部分,其进度计划的制定对于物流活动的高效运作至关重要。在制定配送管理进度计划时,需要考虑许多因素,包括客户需求、物流配送路线、物流配…

    科研百科 2024年9月2日
    37
  • 项目管理系统有哪些(常用的项目管理系统)

    常用的项目管理系统常用的项目管理系统的特征是:1. 每当我做这个项目的时候,都要对它进行全面的考虑,并且能够根据它的需要决定这个项目的执行和功能。2. 它能够有力地控制用户的活动,…

    科研百科 2024年9月29日
    24
  • ISL21010

    ISL21010: 人工智能在教育中的新篇章 随着人工智能技术的不断发展,教育领域也迎来了全新的变革。SL21010,一个由清华大学 KEG 实验室和智谱AI开发的人工智能语言模型…

    科研百科 2024年11月12日
    0
  • 软考中级系统项目管理师

    软考中级系统项目管理师:掌握系统项目管理的关键技能 随着计算机技术的不断发展,系统项目管理已经成为了一个越来越重要的职业领域。作为一个系统项目管理师,需要掌握一系列的技能和知识,才…

    科研百科 5天前
    0
  • 安徽省纪委监委通报六起违规旅游典型问题(安徽省旅游集团举报电话)

    来源:安徽纪检监察 日前,安徽省纪委监委公开通报六起违反中央八项规定精神违规旅游典型问题。具体如下: 1.芜湖市城市管理局行政执法督察支队副支队长朱平等人以考察之名违规公款旅游等问…

    科研百科 2023年7月11日
    276