小程序 BLE
BLE,Bluetooth Low Energy 也就是我们口说的「低功耗蓝牙」,是蓝牙技术联盟设计和销售的一种个人局域网技术。
相较经典蓝牙,低功耗蓝牙能在保持同等通信范围的同时显著降低功耗和成本。关键在于低功耗,满足了非常多的应用场景。大家想想自己手机开着蓝牙,掉电有多快!就知道:在一些设备中,低功耗有多么切确的需求了。
在医疗保健、运动健身、信标、安防、家庭娱乐等领域被广泛应用,特别这几年穿戴设备的火热,比如运动手环、智能跑步鞋等,就连共享单车早期也都是运用这技术,可惜现在说凉就凉了,不过手环还一直坚挺,特别是小 mi 手环。
BLE 技术可谓是 IoT 的功臣、先驱,在「万物互联」时代,在未来 5G 网络未全面铺开前,就算铺开了,我也相信 BLE 会占领一片小天小地。
跟时间打个赌,下一个风口就是万物互联,智能硬件设备将打开一片广阔的市场,我们拭目以待!软硬结合的人才需求也将会进一步扩大。
说了这么多,我们还是从技术人开发角度的出发,熟悉一下 BLE 技术的 coding 流程。
这里不得不佩服小龙哥手下的「小程序」,小而不平凡。它给我们使用 BLE 降低了很大的门槛,相信通过对小程序 BLE 的使用,会很大程度让我们理解 BLE 技术。
另外插一句,龙哥在 2019 微信公开课中分享,真是句句珠玑,非常推荐大家观看:
说到小程序开发,最好的学习的资源,就是官方文档了。我们要相信「官方文档永远是最佳的学习资料」,但可能不是最适合。
打开文档,我们发现小程序给我们提供一些 API 来调用

总共关于蓝牙及低功耗蓝牙开发相关的 API 也就这么几个,不多,非常适合我们入门蓝牙开发。
低功耗蓝牙
- wx.writeBLECharacteristicValue
- wx.readBLECharacteristicValue
- wx.onBLEConnectionStateChange
- wx.onBLECharacteristicValueChange
- wx.notifyBLECharacteristicValueChange
- wx.getBLEDeviceServices
- wx.getBLEDeviceCharacteristics
- wx.createBLEConnection
- wx.closeBLEConnection
蓝牙
- wx.stopBluetoothDevicesDiscovery
- wx.startBluetoothDevicesDiscovery
- wx.openBluetoothAdapter
- wx.onBluetoothDeviceFound
- wx.onBluetoothAdapterStateChange
- wx.getConnectedBluetoothDevices
- wx.getBluetoothDevices
- wx.getBluetoothAdapterState
- wx.closeBluetoothAdapter
官方给的文档,对于没有接触过蓝牙开发的 Friend 可能比较难懂,因为它并没有按蓝牙开发的一般流程来罗列 API,我们过一遍 API 可能还糊里糊涂的,不知所以然,不知如何入手,文档描述也可能比较晦涩。
但很好的是,有例子、有 demo!学习一个技术,我觉得最快的方式过一次官方文档,跑一篇例子,反复琢磨、图文笔记。
所以我非常建议大家跑一下官方的例子,假如你装了微信开发工具,在官方文档中找到如以下图片红框中的文字,双击即可打开。
跟着 demo 的执行顺序,一边查阅相关的 API,走一遍下来,估计明白得七七八八了。一遍不行,就两遍!
这里有些坑,官方文档也给得非常清楚,不过在这里劝一下:大家看文档一定要耐住性子,认真仔细一字不漏的看完且起码知道怎么回事。如果能做到,相信百分之九十九的问题都不用在什么群里或到博客到处问、到处搜。
我这里简单画了一下开发的流程图,分享给大家,希望对有缘之人有帮助!

我是业余画流程图,画得不全,也不一定正确,只是按照我的个人能力,把大概的开发思路用流程图描述而已,并没有全部把代码体现在流程图中,望大家指正!