楼主你好,有个问题需要和你讨论一下,你反馈的问题是 iOS11 引入的新特性,用户在控制中心关闭蓝牙不会真正关闭手机的蓝牙功能,系统的 airDrop、定位等功能仍然有效,因此 iBeacon 功能仍能使用。 但是从程序上来看,不管是 情况1 或者 情况2, 微信端获取到的蓝牙状态均为 CBManagerStatePoweredOff,无法真正区分这两种情况。 那从开发者角度来看,是否接受小程序beacon模块不关心蓝牙状态直接开始监听周边 beacon 呢,不在蓝牙状态为CBManagerStatePoweredOff返回失败? 或者你这边有没有更好的解决方案呢?
iOS 11 ibeacon扫描问题iOS11 蓝牙从通知中心中看有以下3种状态 [图片] [图片] [图片] 蓝牙硬件关闭,无法进行蓝牙扫描,及ibeacon扫描。 蓝牙硬件开启,无法进行蓝牙扫描,但是可以进行ibeacon扫描。 蓝牙硬件开启,可以进行蓝牙扫描,及ibeacon扫描。 以下两个操作可以发现该bug 以蓝牙3状态进去小程序扫描,startBeaconDiscovery函数 ibeacon一直能扫描到并返回数据。此时切换到蓝牙2状态,ibeacon依旧能扫描到数据 以蓝牙2状态进去小程序扫描,startBeaconDiscovery返回错误码11000,iOS原生代码实际上是能够扫描到ibeacon,只是此时程序上获取到的蓝牙状态是关闭着的,所以可能startBeaconDiscovery函数执行时判断蓝牙状态是关闭着就直接返回错误信息了。 请维持iOS代码原生效果,让小程序从蓝牙2状态开启,也能正常扫描到ibeacon。
2018-06-14getBLEDeviceServices 返回结果安卓比IOS多两个 这个是正常表现,安卓会比 iOS 多发现两个 1800 与 1801 两个 Service; writeBLECharacteristicValue:ok 如果 api 返回 ok,即是系统已向小程序侧返回 write 成功的结果了,小程序侧不存在返回假回调的情况; 如果write 指定的特征值支持的属性为 writeWithoutResponse,系统不会等待 write 是否被设备接收的结果,而是在执行 write 操作成功后立即返回 success; 一般来说开发版小程序与正式版小程序在蓝牙接口上实现不会有区别,楼主是否方便上传下你的代码片段,然后找台有问题的机器重现几次后,在 通讯录 - 右上角添加好友 - 搜索框填入 :up - 上传当天日志 也可以在代码上尝试一下在 write 的时机延迟 200ms 再调用 writeBLECharacteristicValue 接口,看是否是因为时序问题导致的
蓝牙写入的接口writeBLECharacteristicValue,回调是假的蓝牙写入的接口writeBLECharacteristicValue 进入了 success 然后我都看到了 writeBLECharacteristicValue:ok,但是设备不会做成任何响应,我查询了社区 很多人遇到类似的问题, 苹果端我用工具调试的时候是好的,但是我代码提交审核发布以后,经常出现 写成功了 但是硬件没有响应。
2018-05-31