jojo_0813
jojo_0813
  • 发布:2024-05-20 16:06
  • 更新:2024-05-20 16:06
  • 阅读:310

APP已配对蓝牙重新连接

分类:Native.js

手机与蓝牙通过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但是执行会报错

2024-05-20 16:06 负责人:无 分享
已邀请:

要回复问题请先登录注册