uni.openBluetoothAdapter({
success(res) {
console.log(res)
uni.getBluetoothDevices({
success(res) {
console.log(res.devices) //这里打印是空
}
})
}
})
- 发布:2023-09-04 15:27
- 更新:2023-09-04 15:27
- 阅读:235
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 3.8.12
手机系统: Android
手机系统版本号: Android 13
手机厂商: 小米
手机机型: 红米k40游戏增强版
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
初始化蓝牙 再使用 uni.getBluetoothDevices
初始化蓝牙 再使用 uni.getBluetoothDevices
预期结果:
获取已经匹配过的蓝牙列表
获取已经匹配过的蓝牙列表
实际结果:
获取到的列表为空
获取到的列表为空
bug描述:
蓝牙初始化之后 使用uni.getBluetoothDevices,获取不到已经匹配过的蓝牙,返回的蓝牙列表是空的,我目前使用 html5plus上JS语法直接调用Native Java接口通道做的
一下是我们的解决方式
function getBlueToothList(){
let blueToothList = []
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
var BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
plus.android.importClass(BManager); //引入相关的method函数
var BAdapter = BManager.getAdapter();
plus.android.importClass(BAdapter);//引入相关的method函数,这样之后才会有isEna
var lists = BAdapter.getBondedDevices();
plus.android.importClass(lists);
var iterator = lists.iterator();
plus.android.importClass(iterator);
while(iterator.hasNext()) {
var d = iterator.next();
plus.android.importClass(d);
blueToothList.push({'name':d.getName(),'address':d.getAddress()})
}
return blueToothList
}
0 个回复