小程序连接蓝牙打印机
1.openBluetoothAdapter初始化蓝牙适配器
wx.openBluetoothAdapter({
success: function (res) {
console.log('---初始化蓝牙适配器状态---');
console.log(res);
}
})
res结果,errcode = 10001,当前蓝牙适配器不可用,本机蓝牙没打开。
2.getBluetoothAdapterState获取蓝牙适配器状态,如果蓝牙未开或不可用,这里可用检测到
wx.getBluetoothAdapterState({
success: function (res) {
console.log('---获取本机蓝牙适配器状态---');
console.log(res);
// res.discovering ? "在搜索。" : "未搜索。",
// res.available ? "可用。" : "不可用。",
}
})
3.开始搜索蓝牙设备startBluetoothDevicesDiscovery() , 提示蓝牙搜索
wx.startBluetoothDevicesDiscovery({
success: function (res) {
that.setData({
msg: "搜索设备" + JSON.stringify(res),
})
//监听蓝牙适配器状态
wx.onBluetoothAdapterStateChange(function (res) {
that.setData({
sousuo: res.discovering ? "在搜索。" : "未搜索。",
status: res.available ? "可用。" : "不可用。",
})
})
}
})
4.获取已配对的蓝牙设备。
**此方法特别说明参数services(Array)是必填的,**但是官方示例中以及各种坑爹demo里从没见过有谁填写,但是不填写这个属性此方法无法获取到任何已配对设备。如果要调用此方法则是需要连接特定设备,并且知道该设备的一个主服务serviceId。如果未知可以先手动连接一次想要连接的设备,然后获取service列表,记录属性primary为true的值至少一个。
1) 无services
wx.getBluetoothDevices({
success: function (res) {
//是否有已连接设备
wx.getConnectedBluetoothDevices({
success: function (res) {
console.log(JSON.stringify(res.devices));
that.setData({
connectedDeviceId: res.deviceId
})
}
})
that.setData({
msg: "搜索设备" + JSON.stringify(res.devices),
devices: res.devices,
})
//监听蓝牙适配器状态
wx.onBluetoothAdapterStateChange(function (res) {
that.setData({
sousuo: res.discovering ? "在搜索。" : "未搜索。",
status: res.available ? "