我目前正在开发基于蓝牙低功耗的IOS应用程序,自从iOS 10s发布以来,我遇到了麻烦,使其在后台工作。
应用程序以这种方式工作: 每个设备都充当CBCentral和CBPeripheral,并且在XCode中设置属性以使其在后台工作。用例非常简单,当一个设备处于后台而另一个处于前台时,前台将扫描外围设备,发现背景设备,并订阅特征。同时,当发现背景的时,它会“唤醒”并开始扫描外围设备,找到前置设备并订阅相同的特性。
在IOS 10s发布之前,一切正常。现在,使用不同设备上的相同代码,应用程序的工作方式不同。我有:
当后台设备是[Iphone 6 - 10.0.2]并且前景设备是[Iphone SE - 10.0.2]或[Ipod touch - 9.3.5]时,后台设备会不扫描(或者找不到前台发布的服务,我真的不知道),所以它是单向传输,只有前台设备从后台设备获取信息。
当后台设备是[Iphone 6 - 10.0.2]且前景设备是[Iphone 4 - 9.3.5]时,它工作得很好,后台设备订阅了前景设备的特性。
当后台设备是[Iphone SE - 10.0.2]并且前景设备是[Iphone 4 - 9.3.5]或[Ipod touch - 9.3.5]时,它也可以正常工作。
有谁知道会导致这种分歧的原因是什么?
由于