收藏
回答

蓝牙问题 苹果手机 wx.getBluetoothAdapterState

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.getBluetoothAdapterState 客户端 wechat 6.7.3 2.3.1

- 当前 Bug 的表现(可附上截图)

苹果手机的蓝牙开着,但wx.getBluetoothAdapterState返回值res.available为false

苹果手机蓝牙的状态是开着的,但是wx.getBluetoothAdapterState调用成功后返回的res.available的值为false,

这种bug 是在苹果手机蓝牙开着但长久不用的状态里出现,一般这种时候关闭重启蓝牙,就可以获取到正确的值。

但是并不清楚蓝牙明明开着,为什么获取本机蓝牙适配器的状态为false


- 预期表现

在苹果手机蓝牙开着的状态下,wx.getBluetoothAdapterState调用成功后返回的res.available的值为true

- 复现路径


- 提供一个最简复现 Demo

这个与代码无关,就是苹果手机蓝牙开着但长久不用的情况下 API调用成功的返回值很迷


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

2 个回答

  • 小菜(休假中回复慢)
    小菜(休假中回复慢)
    2019-11-16

    这个看样子还是没有解决,2019年11月了。 我在iOS 12.4 的设备是, 重复的去获取蓝牙适配器状态。在蓝牙开启的情况下,获取到适配器不可用的几率大概是1/3 。

    在 iOS 上底层确实没有直接获取蓝牙适配器状态的Api ,在原生的iOS开发中,都是依赖通过蓝牙适配器状态变化来确定的。

    所以这边我处理方式是在Data中放一个值 默认是null , 第一次去依赖  getBluetoothAdapterState 去获取蓝牙状态,然后在OnLoad 时添加 OnBluetoothAdapterStateChange 的监听且后续依赖它去获取蓝牙适配器状态

    2019-11-16
    赞同
    回复
  • 兰昊
    兰昊
    2018-10-26
    这和是不是智能机没关系,主要是看手机蓝牙版本与蓝牙耳机是否匹配
    2018-10-26
    赞同
    回复 1
    • Zoey 💫
      Zoey 💫
      2018-10-27

      对啊,和智能机没有关系,只是是苹果手机长时间打开蓝牙的一种状况

      2018-10-27
      回复
登录 后发表内容