2017/12/22 0:00:00
来源:不详
作者:未知
蓝牙适配器接口
基础库版本 1.1.0 开始支持,低版本需做兼容处理
iOS 微信客户端 6.5.6 版本开始支持,Android 客户端暂不支持
wx.openBluetoothAdapter(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
初始化蓝牙适配器
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
success |
Function |
是 |
成功则返回成功初始化信息 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.openBluetoothAdapter({
success: function (res) {
console.log(res)
}
})
Bug & Tip
-
tip
: 由于系统的问题,目前仅在 mac 版的开发工具上支持蓝牙调试
-
tip
: 基础库版本 1.1.0 开始支持,低版本需做兼容处理
wx.closeBluetoothAdapter(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
关闭蓝牙模块。调用该方法将断开所有已建立的链接并释放系统资源
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
success |
Function |
是 |
成功则返回成功关闭模块信息 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.closeBluetoothAdapter({
success: function (res) {
console.log(res)
}
})
wx.getBluetoothAdapterState(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
获取本机蓝牙适配器状态
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
discovering |
Boolean |
是否正在搜索设备 |
available |
Boolean |
蓝牙适配器是否可用 |
errMsg |
String |
成功:ok,错误:详细信息 |
示例代码:
wx.getBluetoothAdapterState({
success: function (res) {
console.log(res)
}
})
wx.onBluetoothAdapterStateChange(CALLBACK)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
监听蓝牙适配器状态变化事件
CALLBACK参数说明:
参数 |
类型 |
说明 |
available |
boolean |
蓝牙适配器是否可用 |
discovering |
boolean |
蓝牙适配器是否处于搜索状态 |
示例代码:
wx.onBluetoothAdapterStateChange(function(res) {
console.log(`adapterState changed, now is`, res)
})
wx.startBluetoothDevicesDiscovery(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
开始搜寻附近的蓝牙外围设备。注意,该操作比较耗费系统资源,请在搜索并连接到设备后调用 stop 方法停止搜索。
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
services |
Array |
否 |
蓝牙设备主 service 的 uuid 列表 |
allowDuplicatesKey |
boolean |
否 |
是否允许重复上报同一设备, 如果允许重复上报,则onDeviceFound 方法会多次上报同一设备,但是 RSSI 值会有不同 |
interval |
integer |
否 |
上报设备的间隔,默认为0,意思是找到新设备立即上报,否则根据传入的间隔上报 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
services参数说明:某些蓝牙设备会广播自己的主 service 的 uuid。如果这里传入该数组,那么根据该 uuid 列表,只搜索有这个主服务的设备。
success返回参数:
参数 |
类型 |
说明 |
errMsg |
string |
成功:ok,错误:详细信息 |
isDiscovering |
boolean |
当前蓝牙适配器是否处于搜索状态 |
示例代码:
wx.startBluetoothDevicesDiscovery({
services: ['FEE7'],
success: function (res) {
console.log(res)
}
})
wx.stopBluetoothDevicesDiscovery(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
停止搜寻附近的蓝牙外围设备。请在确保找到需要连接的设备后调用该方法停止搜索。
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
errMsg |
string |
成功:ok,错误:详细信息 |
adapterState
蓝牙适配器状态信息
参数 |
类型 |
说明 |
discovering |
boolean |
是否正在搜索设备 |
available |
boolean |
蓝牙适配器是否可用 |
示例代码:
wx.stopBluetoothDevicesDiscovery({
success: function (res) {
console.log(res)
}
})
wx.getBluetoothDevices(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
获取所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
devices |
Array |
uuid 对应的的已连接设备列表 |
errMsg |
string |
成功:ok,错误:详细信息 |
device 对象
蓝牙设备信息
参数 |
类型 |
说明 |
name |
string |
蓝牙设备名称,某些设备可能没有 |
deviceId |
string |
用于区分设备的 id |
RSSI |
int |
当前蓝牙设备的信号强度 |
advertisData |
ArrayBuffer |
当前蓝牙设备的广播内容(注意:vConsole 无法打印出 ArrayBuffer 类型数据) |
示例代码:
wx.getBluetoothDevices({
success: function (res) {
console.log(res)
}
})
Bug & Tip
-
tip
: Mac系统可能无法获取advertisData
及RSSI
,请使用真机调试
-
tip
: 开发者工具和 Android 上获取到的deviceId
为设备 MAC 地址,iOS 上则为设备 uuid。因此deviceId
不能硬编码到代码中
wx.getConnectedBluetoothDevices(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
根据 uuid 获取处于已连接状态的设备
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
services |
Array |
是 |
蓝牙设备主 service 的 uuid 列表 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
devices |
Array |
搜索到的设备列表 |
errMsg |
string |
成功:ok,错误:详细信息 |
device对象
蓝牙设备信息
参数 |
类型 |
说明 |
name |
string |
蓝牙设备名称,某些设备可能没有 |
deviceId |
string |
用于区分设备的 id |
示例代码:
wx.getConnectedBluetoothDevices({
success: function (res) {
console.log(res)
}
})
Bug & Tip
-
tip
: 开发者工具和 Android 上获取到的deviceId
为设备 MAC 地址,iOS 上则为设备 uuid。因此deviceId
不能硬编码到代码中
wx.onBluetoothDeviceFound(CALLBACK)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
监听寻找到新设备的事件
CALLBACK参数说明:
参数 |
类型 |
说明 |
devices |
Array |
新搜索到的设备列表 |
device对象
参数 |
类型 |
说明 |
deviceId |
string |
蓝牙设备 id,参考 device 对象 |
name |
string |
蓝牙设备名称,参考 device 对象 |
RSSI |
int |
当前蓝牙设备的信号强度 |
advertisData |
ArrayBuffer |
当前蓝牙设备的广播内容(注意:vConsole 无法打印出 ArrayBuffer 类型数据) |
示例代码:
wx.onBluetoothDeviceFound(function(devices) {
console.log('new device list has founded')
console.dir(devices)
})
Bug & Tip
-
tip
: Mac系统可能无法获取advertisData
及RSSI
,请使用真机调试
-
tip
: 开发者工具和 Android 上获取到的deviceId
为设备 MAC 地址,iOS 上则为设备 uuid。因此deviceId
不能硬编码到代码中
低功耗蓝牙接口
wx.createBLEConnection(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
连接低功耗蓝牙设备
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
deviceId |
string |
是 |
蓝牙设备 id,参考 getDevices 接口 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
errMsg |
string |
成功:ok,错误:详细信息 |
示例代码:
wx.createBLEConnection({
deviceId: deviceId,
success: function (res) {
console.log(res)
}
})
wx.closeBLEConnection(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
断开与低功耗蓝牙设备的连接
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
deviceId |
string |
是 |
蓝牙设备 id,参考 getDevices 接口 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
errMsg |
string |
成功:ok,错误:详细信息 |
示例代码:
wx.closeBLEConnection({
success: function (res) {
console.log(res)
}
})
wx.getBLEDeviceServices(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
获取蓝牙设备所有 service(服务)
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
deviceId |
string |
是 |
蓝牙设备 id,参考 getDevices 接口 |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
services |
array |
设备服务列表 |
errMsg |
string |
成功:ok,错误:详细信息 |
service对象
蓝牙设备service(服务)信息
参数 |
类型 |
说明 |
uuid |
string |
蓝牙设备服务的 uuid |
isPrimary |
boolean |
该服务是否为主服务 |
示例代码:
wx.getBLEDeviceServices({
deviceId: deviceId,
success: function (res) {
console.log('device services:', res.services)
}
})
wx.getBLEDeviceCharacteristics(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
获取蓝牙设备所有 characteristic(特征值)
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
deviceId |
string |
是 |
蓝牙设备 id,参考 device 对象 |
serviceId |
string |
是 |
蓝牙服务 uuid |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
characteristics |
array |
设备特征值列表 |
errMsg |
string |
成功:ok,错误:详细信息 |
characteristic对象
蓝牙设备characteristic(特征值)信息
参数 |
类型 |
说明 |
uuid |
string |
蓝牙设备特征值的 uuid |
properties |
object |
该特征值支持的操作类型 |
properties对象
参数 |
类型 |
说明 |
read |
boolean |
该特征值是否支持 read 操作 |
write |
boolean |
该特征值是否支持 write 操作 |
notify |
boolean |
该特征值是否支持 notify 操作 |
indicate |
boolean |
该特征值是否支持 indicate 操作 |
示例代码:
wx.getBLEDeviceCharacteristics({
deviceId: deviceId,
serviceId: serviceId,
success: function (res) {
console.log('device getBLEDeviceCharacteristics:', res.characteristics)
}
})
wx.readBLECharacteristicValue(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
读取低功耗蓝牙设备的特征值的二进制数据值。注意:必须设备的特征值支持read
才可以成功调用,具体参照 characteristic 的 properties 属性
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
deviceId |
string |
是 |
蓝牙设备 id,参考 device 对象 |
serviceId |
string |
是 |
蓝牙特征值对应服务的 uuid |
characteristicId |
string |
是 |
蓝牙特征值的 uuid |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
characteristic |
object |
设备特征值信息 |
errMsg |
string |
成功:ok,错误:详细信息 |
characteristic对象
蓝牙设备characteristic(特征值)信息
参数 |
类型 |
说明 |
characteristicId |
string |
蓝牙设备特征值的 uuid |
serviceId |
object |
蓝牙设备特征值对应服务的 uuid |
value |
ArrayBuffer |
蓝牙设备特征值对应的二进制值(注意:vConsole 无法打印出 ArrayBuffer 类型数据) |
示例代码:
wx.onBLECharacteristicValueChange(function(characteristic) {
console.log('characteristic value comed:', characteristic)
})
wx.readBLECharacteristicValue({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
success: function (res) {
console.log('readBLECharacteristicValue:', res.characteristic.value)
}
})
Bug & Tip
-
tip
: 并行调用多次读写接口存在读写失败的可能性。
-
tip
:read
接口读取到的信息需要在onBLECharacteristicValueChange
方法注册的回调中获取。
wx.writeBLECharacteristicValue(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
向低功耗蓝牙设备特征值中写入二进制数据。注意:必须设备的特征值支持write
才可以成功调用,具体参照 characteristic 的 properties 属性
tips: 并行调用多次读写接口存在读写失败的可能性
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
deviceId |
string |
是 |
蓝牙设备 id,参考 device 对象 |
serviceId |
string |
是 |
蓝牙特征值对应服务的 uuid |
characteristicId |
string |
是 |
蓝牙特征值的 uuid |
value |
ArrayBuffer |
是 |
蓝牙设备特征值对应的二进制值(注意:vConsole 无法打印出 ArrayBuffer 类型数据) |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
errMsg |
string |
成功:ok,错误:详细信息 |
示例代码:
wx.onBLECharacteristicValueChange(function(characteristic) {
console.log('characteristic value changed:', characteristic)
})
let buffer = new ArrayBuffer(1)
let dataView = new DataView(buffer)
dataView.setUint8(0, 0)
wx.writeBLECharacteristicValue({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
value: buffer,
success: function (res) {
console.log('writeBLECharacteristicValue success', res.errMsg)
}
})
wx.notifyBLECharacteristicValueChanged(OBJECT)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
启用低功耗蓝牙设备特征值变化时的 notify 功能。注意:必须设备的特征值支持notify
才可以成功调用,具体参照 characteristic 的 properties 属性
另外,必须先启用notify
才能监听到设备 characteristicValueChange 事件
OBJECT参数说明:
参数 |
类型 |
必填 |
说明 |
deviceId |
string |
是 |
蓝牙设备 id,参考 device 对象 |
serviceId |
string |
是 |
蓝牙特征值对应服务的 uuid |
characteristicId |
string |
是 |
蓝牙特征值的 uuid |
state |
boolean |
是 |
true: 启用 notify; false: 停用 notify |
success |
Function |
是 |
成功则返回本机蓝牙适配器状态 |
fail |
Function |
否 |
接口调用失败的回调函数 |
complete |
Function |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 |
类型 |
说明 |
errMsg |
string |
成功:ok,错误:详细信息 |
示例代码:
wx.notifyBLECharacteristicValueChanged({
state: true,
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
success: function (res) {
console.log('notifyBLECharacteristicValueChanged success', res.errMsg)
}
})
wx.onBLEConnectionStateChanged(CALLBACK)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等。
CALLBACK参数说明:
参数 |
类型 |
说明 |
deviceId |
string |
蓝牙设备 id,参考 device 对象 |
connected |
boolean |
连接目前的状态 |
示例代码:
wx.onBLEConnectionStateChanged(function(res) {
console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)
})
wx.onBLECharacteristicValueChange(CALLBACK)
基础库版本 1.1.0 开始支持,低版本需做兼容处理
监听低功耗蓝牙设备的特征值变化。必须先启用notify
接口才能接收到设备推送的notification。
CALLBACK参数说明:
参数 |
类型 |
说明 |
deviceId |
string |
蓝牙设备 id,参考 device 对象 |
serviceId |
string |
特征值所属服务 uuid |
characteristicId |
string |
特征值 uuid |
value |
ArrayBuffer |
特征值最新的值(注意:vConsole 无法打印出 ArrayBuffer 类型数据) |
示例代码:
wx.onBLECharacteristicValueChange(function(res) {
console.log(`characteristic ${res.characteristicId} has changed, now is ${res.value}`)
})
蓝牙错误码(errCode)列表
错误码 |
说明 |
备注 |
0 |
ok |
正常 |
10000 |
not init |
未初始化蓝牙适配器 |
10001 |
not available |
当前蓝牙适配器不可用 |
10002 |
no device |
没有找到指定设备 |
10003 |
connection fail |
连接失败 |
10004 |
no service |
没有找到指定服务 |
10005 |
no characteristic |
没有找到指定特征值 |
10006 |
no connection |
当前连接已断开 |
10007 |
property not support |
当前特征值不支持此操作 |
10008 |
system error |
其余所有系统上报的异常 |
10009 |
system not support |
Android 系统特有,系统版本低于 4.3 不支持BLE |
10010 |
no descriptor |
没有找到指定描述符 |
更多
微信小程序开发教程,可以关注。
【本站声明】
1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。
KESION 科汛软件
KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!