手机与蓝牙通过PIN码配对成功后,每次都会直接连接,所以没办法通过搜索设备得到对应的deviceId进行API连接后对设备进行操作。
想到了下面三个解决方案,目前缺少IOS的获取已连接设备的方法,请教各位大神!!!
1.首次连接配对把deviceId等数据写入缓存中保存。(缺少时效性,万一缓存丢失也有后续BUG出现)
2.uniapp 两个api uni.getBluetoothDevices、uni.getConnectedBluetoothDevices都没办法获取(无效)
3.通过Native.js原生语法进行获取当前手机已配对(非已连接)的设备信息(差IOS获取方案)
安卓:(以下方法可以获取已连接设备的 MAC地址即deviceId直接进行重新连接)
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass('android.content.Context');
let BluetoothAdapter = plus.android.importClass(
'android.bluetooth.BluetoothAdapter'
);
let BAdapter = BluetoothAdapter.getDefaultAdapter();
var lists = BAdapter.getBondedDevices();
plus.android.importClass(lists);
// var resultDiv = document.getElementById('bluetooth_list');
var iterator = lists.iterator();
plus.android.importClass(iterator);
while (iterator.hasNext()) {
var d = iterator.next();
plus.android.importClass(d);
console.log(d.getAddress());
}
IOS:(目前还未找到对应的解决方案)
// 导入 CBCentralManager 模块
var CoreBluetooth = plus.ios.importClass('CBCentralManager');
var centralManager = CoreBluetooth.retrieveConnectedPeripherals([
'0000FF00-0000-1000-8000-00805F9B0000',
]);
console.log(centralManager);
以上是查询了IOS文档得到的API但是执行会报错
0 个回复