收藏
回答

华为鸿蒙4.2,openBluetoothAdapter启用蓝牙报错

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug openBluetoothAdapter 微信安卓客户端 8.0.50 3.5.3

该问题有很多开发者都发现了,原因是未赋予微信“连接附近设备”权限(第一次申请时用户点了拒绝);看之前的帖子,官方的意思是需要手动引导用户去开启这个权限,但是我想说的是引导用户这件事本身就是一个问题,很多用户根本不关心你的引导,他们只会认为是程序错误,不断的反馈到我们开发端,严重影响了相关业务的正常开展。

而且关于这个“Bug”,不知道是微信的问题还是华为系统的问题?根据我的测试,这个“连接附近设备”的权限对蓝牙的影响很奇怪:

1.我新装的微信8.0.50,然后打开小程序测试蓝牙,第一次申请“蓝牙权限”时我点了同意,接着马上就会申请“连接附近设备”权限,这时我点了拒绝,然后启用蓝牙就会报错“{"errno":3,"errMsg":"openBluetoothAdapter:fail:system permission denied"}”,我再去系统设置里面手动开启“连接附近设备权限”后,回到小程序启用蓝牙就正常了。

2.我想再次复现“system permission denied”报错,因此我又去系统设置里手动关闭了权限,结果回到小程序启用蓝牙又正常了,我又把小程序删掉,重新运行后蓝牙也是正常的。也就是说此时“连接附近设备”这个权限对蓝牙根本没有影响。

3.最后我又卸载了微信,重装后再次测试,重复第一步的操作才又一次复现了“system permission denied”这个错误。

综上所述,蓝牙API:openBluetoothAdapter对“连接附近设备”这个权限的要求并不是确定性的!

所以问题到底出在哪里?

回答关注问题邀请回答
收藏

4 个回答

  • 小萍姓郑
    小萍姓郑
    12-11

    今天调试我也出现了这个问题,去给微信打开“连接附近设备”权限,之后就可以了。

    博主说的问题第一次手动去系统设置里面手动开启“连接附近设备权限”后,回到小程序启用蓝牙就正常,然后又去系统设置里手动关闭了权限,这时候看蓝牙模块运行是正常的,猜测估计是因为微信有这个授权的缓存,所以可以正常使用。接着后面删除微信重新测试出现问题,因为删掉微信缓存没了,所以要重新去系统那边开启权限。

    12-11
    有用 1
    回复
  • 萝卜
    萝卜
    09-09

    这个问题,我们这边也大范围出现了,严重影响了公司业务,微信有开发人员在处理吗?

    09-09
    有用
    回复
  • 企业名片
    企业名片
    08-29

    解决了吗

    08-29
    有用
    回复
  • 芝士牛奶
    芝士牛奶
    08-13

    想知道有没有除了引导用户打开权限,还有什么办法可以不让小程序频闪

    08-13
    有用
    回复
登录 后发表内容