课程表

微信小程序框架

微信小程序组件

微信小程序API

微信小程序开放接口

微信小程序工具

微信小程序设计规范

工具箱
速查手册

小程序API 蓝牙接口

当前位置:免费教程 » 移动开发 » 微信小程序

蓝牙适配器接口


基础库版本 1.1.0 开始支持,低版本需做兼容处理

iOS 微信客户端 6.5.6 版本开始支持,Android 客户端暂不支持

wx.openBluetoothAdapter(OBJECT)

初始化蓝牙适配器

OBJECT参数说明:

参数类型必填说明
successFunction成功则返回成功初始化信息
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

  1. wx.openBluetoothAdapter({
  2. success: function (res) {
  3. console.log(res)
  4. }
  5. })

Bug & Tip

  1. tip: 由于系统的问题,目前仅在 mac 版的开发工具上支持蓝牙调试
  2. tip: 基础库版本 1.1.0 开始支持,低版本需做兼容处理

wx.closeBluetoothAdapter(OBJECT)

关闭蓝牙模块。调用该方法将断开所有已建立的链接并释放系统资源

OBJECT参数说明:

参数类型必填说明
successFunction成功则返回成功关闭模块信息
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

  1. wx.closeBluetoothAdapter({
  2. success: function (res) {
  3. console.log(res)
  4. }
  5. })

wx.getBluetoothAdapterState(OBJECT)

获取本机蓝牙适配器状态

OBJECT参数说明:

参数类型必填说明
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
adapterStateobject蓝牙适配器信息
errMsgstring成功:ok,错误:详细信息

adapterState

蓝牙适配器状态信息

参数类型说明
discoveringboolean是否正在搜索设备
availableboolean蓝牙适配器是否可用

示例代码:

  1. wx.getBluetoothAdapterState({
  2. success: function (res) {
  3. console.log(res)
  4. }
  5. })

wx.onBluetoothAdapterStateChange(CALLBACK)

监听蓝牙适配器状态变化事件

CALLBACK参数说明:

参数类型说明
availableboolean蓝牙适配器是否可用
discoveringboolean蓝牙适配器是否处于搜索状态

示例代码:

  1. wx.onBluetoothAdapterStateChange(function(res) {
  2. console.log(`adapterState changed, now is`, res)
  3. })

wx.startBluetoothDevicesDiscovery(OBJECT)

开始搜寻附近的蓝牙外围设备。注意,该操作比较耗费系统资源,请在搜索并连接到设备后调用 stop 方法停止搜索。

OBJECT参数说明:

参数类型必填说明
servicesArray蓝牙设备主 service 的 uuid 列表
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

services参数说明:某些蓝牙设备会广播自己的主 service 的 uuid。如果这里传入该数组,那么根据该 uuid 列表,只搜索有这个主服务的设备。

success返回参数:

参数类型说明
errMsgstring成功:ok,错误:详细信息

示例代码:

  1. // 以微信硬件平台的蓝牙智能灯为例,主服务的 UUID 是 FEE7。传入这个参数,只搜索主服务 UUID 为 FEE7 的设备
  2. wx.startBluetoothDevicesDiscovery({
  3. services: ['FEE7'],
  4. success: function (res) {
  5. console.log(res)
  6. }
  7. })

wx.stopBluetoothDevicesDiscovery(OBJECT)

停止搜寻附近的蓝牙外围设备。请在确保找到需要连接的设备后调用该方法停止搜索。

OBJECT参数说明:

参数类型必填说明
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
errMsgstring成功:ok,错误:详细信息

adapterState

蓝牙适配器状态信息

参数类型说明
discoveringboolean是否正在搜索设备
availableboolean蓝牙适配器是否可用

示例代码:

  1. wx.stopBluetoothDevicesDiscovery({
  2. success: function (res) {
  3. console.log(res)
  4. }
  5. })

wx.getBluetoothDevices(OBJECT)

获取所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备

OBJECT参数说明:

参数类型必填说明
servicesArray蓝牙设备主 service 的 uuid 列表
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
devicesArrayuuid 对应的的已连接设备列表
errMsgstring成功:ok,错误:详细信息

device 对象

蓝牙设备信息

参数类型说明
namestring蓝牙设备名称,某些设备可能没有
deviceIdstring用于区分设备的 id
RSSIint当前蓝牙设备的信号强度
advertisDataArrayBuffer当前蓝牙设备的广播内容

示例代码:

  1. wx.getBluetoothDevices({
  2. success: function (res) {
  3. console.log(res)
  4. }
  5. })

Bug & Tip

  1. tip: Mac系统可能无法获取advertisDataRSSI,请使用真机调试
  2. tip: 开发者工具和 Android 上获取到的deviceId为设备 MAC 地址,iOS 上则为设备 uuid。因此deviceId不能硬编码到代码中

wx.onBluetoothDeviceFound(CALLBACK)

监听寻找到新设备的事件

CALLBACK参数说明:

参数类型说明
devicesArray新搜索到的设备列表

device对象

参数类型说明
deviceIdstring蓝牙设备 id,参考 device 对象
namestring蓝牙设备名称,参考 device 对象
RSSIint当前蓝牙设备的信号强度
advertisDataArrayBuffer当前蓝牙设备的广播内容

示例代码:

  1. wx.onBluetoothDeviceFound(function(devices) {
  2. console.log('new device list has founded')
  3. console.dir(devices)
  4. })

Bug & Tip

  1. tip: Mac系统可能无法获取advertisDataRSSI,请使用真机调试
  2. tip: 开发者工具和 Android 上获取到的deviceId为设备 MAC 地址,iOS 上则为设备 uuid。因此deviceId不能硬编码到代码中

wx.getConnectedBluetoothDevices(OBJECT)

根据 uuid 获取处于已连接状态的设备

OBJECT参数说明:

参数类型必填说明
servicesArray蓝牙设备主 service 的 uuid 列表
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
devicesArray搜索到的设备列表
errMsgstring成功:ok,错误:详细信息

device对象

蓝牙设备信息

参数类型说明
namestring蓝牙设备名称,某些设备可能没有
deviceIdstring用于区分设备的 id

示例代码:

  1. wx.getConnectedBluetoothDevices({
  2. success: function (res) {
  3. console.log(res)
  4. }
  5. })

Bug & Tip

  1. tip: 开发者工具和 Android 上获取到的deviceId为设备 MAC 地址,iOS 上则为设备 uuid。因此deviceId不能硬编码到代码中

低功耗蓝牙接口


wx.createBLEConnection(OBJECT)

连接低功耗蓝牙设备

OBJECT参数说明:

参数类型必填说明
deviceIdstring蓝牙设备 id,参考 getDevices 接口
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
errMsgstring成功:ok,错误:详细信息

示例代码:

  1. wx.createBLEConnection({
  2. // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
  3. deviceId: deviceId,
  4. success: function (res) {
  5. console.log(res)
  6. }
  7. })

wx.closeBLEConnection(OBJECT)

断开与低功耗蓝牙设备的连接

OBJECT参数说明:

参数类型必填说明
deviceIdstring蓝牙设备 id,参考 getDevices 接口
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
errMsgstring成功:ok,错误:详细信息

示例代码:

  1. wx.closeBLEConnection({
  2. success: function (res) {
  3. console.log(res)
  4. }
  5. })

wx.onBLEConnectionStateChanged(CALLBACK)

监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等

CALLBACK参数说明:

参数类型说明
deviceIdstring蓝牙设备 id,参考 device 对象
connectedboolean连接目前的状态

示例代码:

  1. wx.onBLEConnectionStateChanged(function(res) {
  2. console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)
  3. })

wx.getBLEDeviceServices(OBJECT)

获取蓝牙设备所有 service(服务)

OBJECT参数说明:

参数类型必填说明
deviceIdstring蓝牙设备 id,参考 getDevices 接口
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
servicesarray设备服务列表
errMsgstring成功:ok,错误:详细信息

service对象

蓝牙设备service(服务)信息

参数类型说明
uuidstring蓝牙设备服务的 uuid
isPrimaryboolean该服务是否为主服务

示例代码:

  1. wx.getBLEDeviceServices({
  2. // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
  3. deviceId: deviceId,
  4. success: function (res) {
  5. console.log('device services:', res.services)
  6. }
  7. })

wx.getBLEDeviceCharacteristics(OBJECT)

获取蓝牙设备所有 characteristic(特征值)

OBJECT参数说明:

参数类型必填说明
deviceIdstring蓝牙设备 id,参考 device 对象
serviceIdstring蓝牙服务 uuid
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
characteristicsarray设备特征值列表
errMsgstring成功:ok,错误:详细信息

characteristic对象

蓝牙设备characteristic(特征值)信息

参数类型说明
uuidstring蓝牙设备特征值的 uuid
propertiesobject该特征值支持的操作类型
properties对象
参数类型说明
readboolean该特征值是否支持 read 操作
writeboolean该特征值是否支持 write 操作
notifyboolean该特征值是否支持 notify 操作
indicateboolean该特征值是否支持 indicate 操作

示例代码:

  1. wx.getBLEDeviceCharacteristics({
  2. // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
  3. deviceId: deviceId,
  4. // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
  5. serviceId: serviceId,
  6. success: function (res) {
  7. console.log('device getBLEDeviceCharacteristics:', res.characteristics)
  8. }
  9. })

wx.readBLECharacteristicValue(OBJECT)

读取低功耗蓝牙设备的特征值的二进制数据值。注意:必须设备的特征值支持read才可以成功调用,具体参照 characteristic 的 properties 属性

OBJECT参数说明:

参数类型必填说明
deviceIdstring蓝牙设备 id,参考 device 对象
serviceIdstring蓝牙特征值对应服务的 uuid
characteristicIdstring蓝牙特征值的 uuid
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
characteristicobject设备特征值信息
errMsgstring成功:ok,错误:详细信息

characteristic对象

蓝牙设备characteristic(特征值)信息

参数类型说明
characteristicIdstring蓝牙设备特征值的 uuid
serviceIdobject蓝牙设备特征值对应服务的 uuid
valueArrayBuffer蓝牙设备特征值对应的二进制值

示例代码:

  1. // 必须在这里的回调才能获取
  2. wx.onBLECharacteristicValueChange(function(characteristic) {
  3. console.log('characteristic value comed:', characteristic)
  4. })
  5. wx.readBLECharacteristicValue({
  6. // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
  7. deviceId: deviceId,
  8. // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
  9. serviceId: serviceId,
  10. // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
  11. characteristicId: characteristicId,
  12. success: function (res) {
  13. console.log('readBLECharacteristicValue:', res.characteristic.value)
  14. }
  15. })

Bug & Tip

  1. tip: 并行调用多次读写接口存在读写失败的可能性。
  2. tip: read接口读取到的信息需要在onBLECharacteristicValueChange方法注册的回调中获取。

wx.writeBLECharacteristicValue(OBJECT)

向低功耗蓝牙设备特征值中写入二进制数据。注意:必须设备的特征值支持write才可以成功调用,具体参照 characteristic 的 properties 属性

tips: 并行调用多次读写接口存在读写失败的可能性

OBJECT参数说明:

参数类型必填说明
deviceIdstring蓝牙设备 id,参考 device 对象
serviceIdstring蓝牙特征值对应服务的 uuid
characteristicIdstring蓝牙特征值的 uuid
valueArrayBuffer蓝牙设备特征值对应的二进制值
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
errMsgstring成功:ok,错误:详细信息

示例代码:

  1. // 这里的回调可以获取到 write 导致的特征值改变
  2. wx.onBLECharacteristicValueChange(function(characteristic) {
  3. console.log('characteristic value changed:', characteristic)
  4. })
  5. // 向蓝牙设备发送一个0x00的16进制数据
  6. let buffer = new ArrayBuffer(1)
  7. let dataView = new DataView(buffer)
  8. dataView.setUint8(0, 0)
  9. wx.writeBLECharacteristicValue({
  10. // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
  11. deviceId: deviceId,
  12. // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
  13. serviceId: serviceId,
  14. // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
  15. characteristicId: characteristicId,
  16. // 这里的value是ArrayBuffer类型
  17. value: buffer,
  18. success: function (res) {
  19. console.log('writeBLECharacteristicValue success', res.errMsg)
  20. }
  21. })

wx.notifyBLECharacteristicValueChanged(OBJECT)

启用低功耗蓝牙设备特征值变化时的 notify 功能。注意:必须设备的特征值支持notify才可以成功调用,具体参照 characteristic 的 properties 属性

另外,必须先启用notify才能监听到设备 characteristicValueChange 事件

OBJECT参数说明:

参数类型必填说明
deviceIdstring蓝牙设备 id,参考 device 对象
serviceIdstring蓝牙特征值对应服务的 uuid
characteristicIdstring蓝牙特征值的 uuid
statebooleantrue: 启用 notify; false: 停用 notify
successFunction成功则返回本机蓝牙适配器状态
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数:

参数类型说明
errMsgstring成功:ok,错误:详细信息

示例代码:

  1. wx.notifyBLECharacteristicValueChanged({
  2. state: true, // 启用 notify 功能
  3. // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
  4. deviceId: deviceId,
  5. // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
  6. serviceId: serviceId,
  7. // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
  8. characteristicId: characteristicId,
  9. success: function (res) {
  10. console.log('notifyBLECharacteristicValueChanged success', res.errMsg)
  11. }
  12. })

wx.onBLEConnectionStateChanged(CALLBACK)

监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等。

CALLBACK参数说明:

参数类型说明
deviceIdstring蓝牙设备 id,参考 device 对象
connectedboolean连接目前的状态

示例代码:

  1. wx.onBLEConnectionStateChanged(function(res) {
  2. // 该方法回调中可以用于处理连接意外断开等异常情况
  3. console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)
  4. })

wx.onBLECharacteristicValueChange(CALLBACK)

监听低功耗蓝牙设备的特征值变化。必须先启用notify接口才能接收到设备推送的notification。

CALLBACK参数说明:

参数类型说明
deviceIdstring蓝牙设备 id,参考 device 对象
serviceIdstring特征值所属服务 uuid
characteristicIdstring特征值 uuid
valueArrayBuffer特征值最新的值

示例代码:

  1. wx.onBLECharacteristicValueChange(function(res) {
  2. console.log(`characteristic ${res.characteristicId} has changed, now is ${res.value}`)
  3. })
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号