蓝牙适配器接口是基础库版本 110 开始支持。
iOS 微信客户端 656 版本开始支持,Android 客户端暂不支持
蓝牙总共增加了18个api接口。
Api分类
搜索类
连接类
通信类
案例实现
搜索蓝牙设备
/
搜索设备界面
/
Page({
data: {
logs: [],
list:[],
},
onLoad: function () {
consolelog('onLoad')
var that = this;
// const SDKVersion = wxgetSystemInfoSync()SDKVersion || '100'
// const [MAJOR, MINOR, PATCH] = SDKVersionsplit('')map(Number)
// consolelog(SDKVersion);
// consolelog(MAJOR);
// consolelog(MINOR);
// consolelog(PATCH);
// const canIUse = apiName => {
// if (apiName === 'showModalcancel') {
// return MAJOR >= 1 && MINOR >= 1
// }
// return true
// }
// wxshowModal({
// success: function(res) {
// if (canIUse('showModalcancel')) {
// consolelog(rescancel)
// }
// }
// })
//获取适配器
wxopenBluetoothAdapter({
success: function(res){
// success
consolelog("-----success----------");
consolelog(res);
//开始搜索
wxstartBluetoothDevicesDiscovery({
services: [],
success: function(res){
// success
consolelog("-----startBluetoothDevicesDiscovery--success----------");
consolelog(res);
},
fail: function(res) {
// fail
consolelog(res);
},
complete: function(res) {
// complete
consolelog(res);
}
})
},
fail: function(res) {
consolelog("-----fail----------");
// fail
consolelog(res);
},
complete: function(res) {
// complete
consolelog("-----complete----------");
consolelog(res);
}
})
wxgetBluetoothDevices({
success: function(res){
// success
//{devices: Array[11], errMsg: "getBluetoothDevices:ok"}
consolelog("getBluetoothDevices");
consolelog(res);
thatsetData({
list:resdevices
});
consolelog(thatdatalist);
},
fail: function(res) {
// fail
},
complete: function(res) {
// complete
}
})
},
onShow:function(){
},
//点击事件处理
bindViewTap: function(e) {
consolelog(ecurrentTargetdatasettitle);
consolelog(ecurrentTargetdatasetname);
consolelog(ecurrentTargetdatasetadvertisData);
var title = ecurrentTargetdatasettitle;
var name = ecurrentTargetdatasetname;
wxredirectTo({
url: '/conn/conndeviceId='+title+'&name='+name,
success: function(res){
// success
},
fail: function(res) {
// fail
},
complete: function(res) {
// complete
}
})
},
})
连接 获取数据
/
连接设备。获取数据
/
Page({
data: {
motto: 'Hello World',
userInfo: {},
deviceId: '',
name: '',
serviceId: '',
services: [],
cd20: '',
cd01: '',
cd02: '',
cd03: '',
cd04: '',
characteristics20: null,
characteristics01: null,
characteristics02: null,
characteristics03: null,
characteristics04: null,
result,
},
onLoad: function (opt) {
var that = this;
consolelog("onLoad");
consolelog('deviceId=' + optdeviceId);
consolelog('name=' + optname);
thatsetData({ deviceId: optdeviceId });
/
监听设备的连接状态
/
wxonBLEConnectionStateChanged(function (res) {
consolelog(`device ${resdeviceId} state has changed, connected: ${resconnected}`)
})
/
连接设备
/
wxcreateBLEConnection({
deviceId: thatdatadeviceId,
success: function (res) {
// success
consolelog(res);
/
连接成功,后开始获取设备的服务列表
/
wxgetBLEDeviceServices({
// 这里的 deviceId 需要在上面的 getBluetoothDevices中获取
deviceId: thatdatadeviceId,
success: function (res) {
consolelog('device services:', resservices)
thatsetData({ services: resservices });
consolelog('device services:', thatdataservices[1]uuid);
thatsetData({ serviceId: thatdataservices[1]uuid });
consolelog('--------------------------------------');
consolelog('device设备的id:', thatdatadeviceId);
consolelog('device设备的服务id:', thatdataserviceId);
/
延迟3秒,根据服务获取特征
/
setTimeout(function () {
wxgetBLEDeviceCharacteristics({
// 这里的 deviceId 需要在上面的 getBluetoothDevices
deviceId: thatdatadeviceId,
// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
serviceId: thatdataserviceId,
success: function (res) {
consolelog('000000000000' + thatdataserviceId);
consolelog('device getBLEDeviceCharacteristics:', rescharacteristics)
for (var i = 0; i < 5; i++) {
if (rescharacteristics[i]uuidindexOf("cd20") != -1) {
thatsetData({
cd20: rescharacteristics[i]uuid,
characteristics20: rescharacteristics[i]
});
}
if (rescharacteristics[i]uuidindexOf("cd01") != -1) {
thatsetData({
cd01: rescharacteristics[i]uuid,
characteristics01: rescharacteristics[i]
});
}
if (rescharacteristics[i]uuidindexOf("cd02") != -1) {
thatsetData({
cd02: rescharacteristics[i]uuid,
characteristics02: rescharacteristics[i]
});
} if (rescharacteristics[i]uuidindexOf("cd03") != -1) {
thatsetData({
cd03: rescharacteristics[i]uuid,
characteristics03: rescharacteristics[i]
});
}
if (rescharacteristics[i]uuidindexOf("cd04") != -1) {
thatsetData({
cd04: rescharacteristics[i]uuid,
characteristics04: rescharacteristics[i]
});
}
}
consolelog('cd01= ' + thatdatacd01 + 'cd02= ' + thatdatacd02 + 'cd03= ' + thatdatacd03 + 'cd04= ' + thatdatacd04 + 'cd20= ' + thatdatacd20);
/
回调获取 设备发过来的数据
/
wxonBLECharacteristicValueChange(function (characteristic) {
consolelog('characteristic value comed:', characteristicvalue)
//{value: ArrayBuffer, deviceId: "D8:00:D2:4F:24:17", serviceId: "ba11f08c-5f14-0b0d-1080-007cbe238851-0x600000460240", characteristicId: "0000cd04-0000-1000-8000-00805f9b34fb-0x60800069fb80"}
/
监听cd04cd04中的结果
/
if (characteristiccharacteristicIdindexOf("cd01") != -1) {
const result = characteristicvalue;
const hex = thatbuf2hex(result);
consolelog(hex);
}
if (characteristiccharacteristicIdindexOf("cd04") != -1) {
const result = characteristicvalue;
const hex = thatbuf2hex(result);
consolelog(hex);
thatsetData({ result: hex });
}
})
/
顺序开发设备特征notifiy
/
wxnotifyBLECharacteristicValueChanged({
deviceId: thatdatadeviceId,
serviceId: thatdataserviceId,
characteristicId: thatdatacd01,
state: true,
success: function (res) {
// success
consolelog('notifyBLECharacteristicValueChanged success', res);
},
fail: function (res) {
// fail
},
complete: function (res) {
// complete
}
})
wxnotifyBLECharacteristicValueChanged({
deviceId: thatdatadeviceId,
serviceId: thatdataserviceId,
characteristicId: thatdatacd02,
state: true,
success: function (res) {
// success
consolelog('notifyBLECharacteristicValueChanged success', res);
},
fail: function (res) {
// fail
},
complete: function (res) {
// complete
}
})
wxnotifyBLECharacteristicValueChanged({
deviceId: thatdatadeviceId,
serviceId: thatdataserviceId,
characteristicId: thatdatacd03,
state: true,
success: function (res) {
// success
consolelog('notifyBLECharacteristicValueChanged success', res);
},
fail: function (res) {
// fail
},
complete: function (res) {
// complete
}
})
wxnotifyBLECharacteristicValueChanged({
// 启用 notify 功能
// 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
deviceId: thatdatadeviceId,
serviceId: thatdataserviceId,
characteristicId: thatdatacd04,
state: true,
success: function (res) {
consolelog('notifyBLECharacteristicValueChanged success', res)
}
})
}, fail: function (res) {
consolelog(res);
}
})
}
, 1500);
}
})
},
fail: function (res) {
// fail
},
complete: function (res) {
// complete
}
})
},
/
发送 数据到设备中
/
bindViewTap: function () {
var that = this;
var hex = 'AA5504B10000B5'
var typedArray = new Uint8Array(hexmatch(/[\da-f]{2}/gi)map(function (h) {
return parseInt(h, 16)
}))
consolelog(typedArray)
consolelog([0xAA, 0x55, 0x04, 0xB1, 0x00, 0x00, 0xB5])
var buffer1 = typedArraybuffer
consolelog(buffer1)
wxwriteBLECharacteristicValue({
deviceId: thatdatadeviceId,
serviceId: thatdataserviceId,
characteristicId: thatdatacd20,
value: buffer1,
success: function (res) {
// success
consolelog("success 指令发送成功");
consolelog(res);
},
fail: function (res) {
// fail
consolelog(res);
},
complete: function (res) {
// complete
}
})
},
/
ArrayBuffer 转换为 Hex
/
buf2hex: function (buffer) { // buffer is an ArrayBuffer
return Arrayprototypemapcall(new Uint8Array(buffer), x => ('00' + xtoString(16))slice(-2))join('');
}
})
效果展示
发送校验指令。获取结果
在微信709版本中,没有蓝牙权限选项,手机开启蓝牙功能后,微信便可以通过蓝牙和智能手表同步信息,微信可以开启NFC权限,在微信709版本中,打开软件,点击我,点击设置,进入通用设置页面,找到“开启NFC功能”选项,将该功能开启即可使用。
微信使用技巧:1、微信具有二维码收款功能,打开软件,点击页面右下角的“我”,点击“支付”,点击“收付款”按钮,点击立即开启即可使用二维码收款。
2、微信可以查看拍摄过的视频,打开软件,点击页面右下角的“我”,点击相册即可查看。
3、在微信首页下拉,可以找到微信小程序入口,也可以点击“发现”按钮,在d出页面可以看到小程序入口。
4、微信语音发不出去,可能是网络不稳定导致,可以切换网络;可能是软件出现bug,可以重启软件。
资料拓展:微信是一款即时通讯软件,使用者可以通过微信客户端与好友分享文字、以及贴图,并支持分组聊天和语音、视频对讲、广播(一对多)消息、照片共享、位置共享、微信支付、理财通,游戏等服务。
连接蓝牙设备,需要使用微信的wxcreateBLEConnection接口,参数为蓝牙设备的deviceId(这个参数在搜索的设备信息里面可以直接拿到)。
2 在blejs里面新增connect、disconnect、getDevConStatus三个接口,用以统一管理设备连接和设备断开,因为在安卓平台上,重复去连接会导致设备没有办法断开连接。所以在blejs里面还维护了一个连接/正在连接的设备数组,方便统一管理设备。当调用connect的时候,会先去这个数组里面查找是否有该设备,如果有就不再去调用连接了。当调用disconnect或者设备被动断开,会把该设备从这个数组里面删除。
题主是否想询问“微信小程序功耗蓝牙界面不响应解决方法”方法如下:
1、蓝牙连接失败:是因为设备未打开蓝牙或蓝牙信号不稳定等问题导致连接失败。可以尝试重新连接,或者检查设备是否支持蓝牙连接,并检查设备蓝牙设置。
2、小程序代码问题:是因为小程序代码存在错误或者逻辑问题导致蓝牙连接界面不响应。可以检查小程序代码,找出问题所在,并进行修复。
3、小程序权限问题:是因为小程序未被授予使用蓝牙的权限,或者未获得足够的系统权限,导致无法连接蓝牙设备。可以检查小程序权限设置,并确保已经授权使用蓝牙。
重新连接。
有时候在显示过程中打开蓝牙,小程序未能及时接收到信息,从而出现打开仍旧提醒的情况。
具体步骤:设置---权限管理--微信--开启蓝牙--允许“。
打开蓝牙开关。
查看收是否打开了蓝牙开关,再看一下微信app是否允许使用了蓝牙的选项。
腾讯微信(faq)是一种更快速的短邮,具有跨平台沟通、显示实时输入状态等功能,与传统的短信沟通方式相比,更灵活、智能,且节省资费。
以上就是关于用微信小程序怎么开发蓝牙BLE全部的内容,包括:用微信小程序怎么开发蓝牙BLE、微信蓝牙权限在哪打开、蓝牙微信小程序ble用那个搜索等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)