凌风浮云S
凌风浮云S
  • 发布:2023-09-04 15:27
  • 更新:2023-09-04 15:27
  • 阅读:108

【报Bug】uni.getBluetoothDevices 获取不到匹配过的蓝牙

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 3.8.12

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: 红米k40游戏增强版

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
uni.openBluetoothAdapter({  
                    success(res) {  

                        console.log(res)  
                        uni.getBluetoothDevices({  
                          success(res) {  
                            console.log(res.devices)  //这里打印是空  
                          }  
                        })  
                    }  
                })

操作步骤:

初始化蓝牙 再使用 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  
    }  
2023-09-04 15:27 负责人:无 分享
已邀请:

要回复问题请先登录注册