iOS后台锁屏模式下,扫描蓝牙设备nil,为什么呢?


#1

你好,遇到一个奇怪的现象,我对设备进行了监听,在息屏后台模式下,由于会不断收到didEnter和didExit的通知,所以我每次收到exit时都会去 startRangingBeaconsInRegion 扫描一遍,那么问题来了,大部分情况下,我都是能够扫描到设备的,但是有偶尔发生过,startRangingBeaconsInRegion 返回的设备数组是nil,这个现象是为什么呢?


#2

startRangingBeaconsInRegion 调用这个方法之后大概会收到10次左右的的回掉,每次返回的数组都是nil吗?


#3

有两种情况
第一种是连续的次数,所有扫描都是返回nil数组,
还有一种情况:是前几次都是nil,但下面又会有数据了

但是第一种情况发生的概率还是蛮大的,因为后台情况下,系统只给了10s处理时间,有时这10s内都是nil,我就没办法了。。。

不知道你们有没有遇到这种情况,或者对于这种情况 有没有什么好的办法?

最后弱弱问一句,这种情况是属于系统自己限制了蓝牙的功能吗?


#4

其实这一套逻辑我们都是封装的系统的,所以很有可能是系统有限制吧。
我们自己是起用了后台刷新location来获取后台操作权限来实现的。