1***@163.com
1***@163.com
  • 发布:2022-11-21 10:18
  • 更新:2023-06-08 18:14
  • 阅读:181

【报Bug】【ios】蓝牙onBluetoothDeviceFound在设备开启状态时,设备数据不动的情况下,无法获取RSSI值更新

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.6.4

手机系统: iOS

手机系统版本号: iOS 14

手机厂商: 苹果

手机机型: iphone X

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

uni.openBluetoothAdapter({
success() {
console.log('打开蓝牙适配器......');
uni.startBluetoothDevicesDiscovery({
allowDuplicatesKey: true,
interval: 300,
success() {
console.log('开始发现设备......');
uni.onBluetoothDeviceFound(({ devices }) => {
function ab2hex(buffer) {
const hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function (bit) {
return ('00' + bit.toString(16)).slice(
-2
);
}
);
return hexArr.join('');
}

                        let device = devices[0];  
                        device.hex = ab2hex(  
                            device.advertisData  
                        ).toUpperCase();  

                        //  这个F82022011301修改成自己设备的特定值即可,如果环境下只有一个蓝牙设备去掉也行  
                        if (device.hex.includes('F82022011301')) {  
                            console.log('发现设备......');  
                            console.log('RSSI', device.RSSI);  
                        }  
                    });  
                },  
            });  
        },  
    });

操作步骤:

我们这边用的是蓝牙婴儿秤,打开秤体开关,然后秤体只开着不称重(体重数据不改变),直接用上面代码在ios环境下即可复现,目前我们这边用的ios都能复现,安卓没有问题

预期结果:

【ios】即使蓝牙设备的其他数据不改变,只有RSSI改变,也能有数据响应

实际结果:

【ios】蓝牙设备的其他数据不改变,RSSI的改变的数据也不会反馈到设备中

bug描述:

ios环境下,蓝牙onBluetoothDeviceFound方法在蓝牙设备开启状态时,设备其他数据(RSSI有变动)不动的情况下,无法获取RSSI值更新,而这种情况,在安卓是会一直返回数据的,已经设置allowDuplicatesKey了

2022-11-21 10:18 负责人:无 分享
已邀请:
浅水321

浅水321

解决了吗

要回复问题请先登录注册