【管理员请进】蓝牙问题,急需一个方案!!!
发布于 5 年前 作者 zhongxiulan 9293 次浏览 来自 问答

现在有这么一个问题!

    蓝牙问题:众所周知,安卓的蓝牙很坑,安卓6.0以上的手机需要打开微信定位权限,安卓7.0以上需要                            打开微信定位权限和手机定位权限(有些6.0以上的也需要全部打开),由于小程序不能操

                        作手机上的原生接口,只能给提示。

需求

    由于安卓手机不一样,权限管理的位置也不一样(华为的基本在设置里面,VIVO的基本在I管家里面),    有没有什么好的方案打开权限管理里的微信定位

我们的产品是通过蓝牙连接的,面向了所有用户,现在就有这个蓝牙连接不上的问题,通过测试基本上都是由于没有打开权限和定位,但是我们已经做了相关的提示,定位还好操作,都会打开,主要是这个微信定位权限的地方,很多用户都不知道在哪里。能不能给个好一点的方案。麻烦各位和管理员了。(现在IOS蓝牙基本上在一秒到两秒连接上的,Android基本上在2到3秒。偶尔会慢一点)

10 回复

你好,感谢你的反馈。这部分的问题我们内部也在讨论评估解决的方案,还没有敲定最终的解决方案。因此开发者这边暂时只能通过提示的方式让用户自行在系统面板内授权微信使用定位信息。因此给你带来不便,我们深感歉意。

你试着延迟一下获取蓝牙列表!我这边前几天测了一部手机,华为的,什么都开了也获取不了,后来我想了一下是不是获取蓝牙列表的原因,我就延迟了一下,以前是搜索蓝牙列表后,延迟的500毫秒获取的蓝牙列表。我延迟1秒后还是搜不到,后来延迟1.5秒就搜索到了

但是为何我这边出现了,定位权限都给了,但是还是不能搜索到设备,oppor9s测试了13部都不行。。。还有啥其他原因不?

超过四次就连接失败

好吧!也请你们尽快解决一下这个问题,这样对用户体验很不好。

我没有用这个监听的接口,我直接用的获取蓝牙列表,因为我们公司设备有几百台,所以获取的蓝牙列表有点多,我直接通过蓝牙信号强度来排序,获取前10个就蓝牙就ok了

提示个演示动画?或者图例给用户看吧

我获取蓝牙列表第一次是延迟500毫秒,获取不到第二次延迟1秒以此类推。这个主要为了避免有些手机的蓝牙模块,搜索速度慢的原因。

onBluetoothDeviceFound

这个方法也需要延迟么

//获取蓝牙列表

if (that.data.BluetoothState == 0) {

    setTimeout(function () {

        that.getBluetoothInfo();

    }, 500);

} else if (that.data.BluetoothState == 1) {

    setTimeout(function () {

        that.getBluetoothInfo();

    }, 1000);

} else if (that.data.BluetoothState == 2) {

    setTimeout(function () {

        that.getBluetoothInfo();

    }, 1500);

} else if (that.data.BluetoothState == 3) {

    setTimeout(function () {

        that.getBluetoothInfo();

    }, 2000);

} else {

    setTimeout(function () {

        that.getBluetoothInfo();

    }, 2500);

}

回到顶部