- 当前 Bug 的表现(可附上截图)
苹果手机的蓝牙开着,但wx.getBluetoothAdapterState返回值res.available为false
苹果手机蓝牙的状态是开着的,但是wx.getBluetoothAdapterState调用成功后返回的res.available的值为false,
这种bug 是在苹果手机蓝牙开着但长久不用的状态里出现,一般这种时候关闭重启蓝牙,就可以获取到正确的值。
但是并不清楚蓝牙明明开着,为什么获取本机蓝牙适配器的状态为false
- 预期表现
在苹果手机蓝牙开着的状态下,wx.getBluetoothAdapterState调用成功后返回的res.available的值为true
- 复现路径
- 提供一个最简复现 Demo
这个与代码无关,就是苹果手机蓝牙开着但长久不用的情况下 API调用成功的返回值很迷
这个看样子还是没有解决,2019年11月了。 我在iOS 12.4 的设备是, 重复的去获取蓝牙适配器状态。在蓝牙开启的情况下,获取到适配器不可用的几率大概是1/3 。
在 iOS 上底层确实没有直接获取蓝牙适配器状态的Api ,在原生的iOS开发中,都是依赖通过蓝牙适配器状态变化来确定的。
所以这边我处理方式是在Data中放一个值 默认是null , 第一次去依赖 getBluetoothAdapterState 去获取蓝牙状态,然后在OnLoad 时添加 OnBluetoothAdapterStateChange 的监听且后续依赖它去获取蓝牙适配器状态
对啊,和智能机没有关系,只是是苹果手机长时间打开蓝牙的一种状况