小程序ios下调用蓝牙无法根据mac识别,不多说直接上代码;
官网 地址:
https://mp.weixin.qq.com/debug/wxadoc/dev/api/bluetooth.html#wxgetconnectedbluethoothdevicesobject
感谢:http://www.zhimengzhe.com/IOSkaifa/362398.html
var that = this;
//获取适配器
wx.openBluetoothAdapter({
success: function (res) {
// success
console.log("-----success----------");
console.log(res);
//开始搜索
wx.startBluetoothDevicesDiscovery({
services: [],
success: function (res) {
// success
console.log("-----startBluetoothDevicesDiscovery--success----------");
console.log(res);
},
fail: function (res) {
// fail
console.log("fail"+res);
},
complete: function (res) {
// complete
console.log("complete" +res);
}
})
},
fail: function (res) {
console.log("-----fail----------");
// fail
console.log(res);
},
complete: function (res) {
// complete
console.log("-----complete----------");
console.log(res);
}
})
//获取所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备
wx.getBluetoothDevices({
success: function (res) {
// success
//{devices: Array[11], errMsg: "getBluetoothDevices:ok"}
console.log("getBluetoothDevices");
// console.log(res);
// console.log(res.devices[0]);
// var bf = res.devices[0].advertisData.slice(2,8);
// console.log(res.devices[0].advertisData);
// console.log(bf);
// console.log(new Uint8Array(bf));
// // var arrayBuffer = that.buf2hex(bf);
// var ar = Array.prototype.map.call(new Uint8Array(bf), x => ('00' + x.toString(16)).slice(-2)).join('');
// console.log(ar);
that.setData({
list: res.devices
});
console.log(that.data.list);
let list = that.data.list
for (var i = 0; i < list.length; i++) {
// if (list[i].RSSI > -80 ){//判断信号距离最近
if (list[i].advertisData != null) {//判断对象是否为null,advertisData不一定有
//重点 根据advertisData 取出mac进行拼接
let bf = list[i].advertisData.slice(4, 10);
let mac = Array.prototype.map.call(new Uint8Array(bf), x => ('00' + x.toString(16)).slice(-2)).join(':');
console.log(mac.toUpperCase());
//判断mac是否为服务器传入mac
if (mac.toUpperCase() == '3C:A3:08:BA:45:35') {
that.setData({
deviceId: list[i].deviceId
});
console.log('deviceId:' + that.data.deviceId);
}
console.log(list[i]);
}
// }
}
},
fail: function (res) {
// fail
},
complete: function (res) {
// complete
}
})