我正在构建一个使用Core Bluetooth(BLE)并同时充当外围(在后台)和中央(两者在前台)的iOS应用程序,以便与在附近运行同一应用程序的其他任何人进行通信。

我注意到,当该应用程序在 iOS9 (特别是)上运行并在前台扫描外围设备的中央模式中运行时,它会自动提示您与附近的设备配对!

蓝牙配对请求

“iPhone”想与您的配对
苹果手机。确认验证码
“iPhone”上显示“701958”。

[取消] []

示例:http://i.stack.imgur.com/D6sgg.png

尽管我没有在任何地方的外围设备特征设置中使用加密,但是这种情况仍在发生!这是一个简单的特征,其属性值设置为“ CBCharacteristicPropertyRead ”,权限设置为“ CBAttributePermissionsReadable ”。还要注意,该特性被设置为静态值,而不是动态值,并且可以直接读取而无需订阅通知。

外围设备(特性设置):

CBMutableCharacteristic *characteristic = [[CBMutableCharacteristic alloc]
                                           initWithType:[CBUUID UUIDWithString:uuidStr]
                                           properties:CBCharacteristicPropertyRead
                                           value:myData
                                           permissions:CBAttributePermissionsReadable];

中央(正在尝试连接):
[self.centralManager connectPeripheral:peripheral options:nil];
我的iOS9中心向发现的iOS8外围设备发起连接请求时,提示似乎已启动。

还有其他人遇到吗?这段代码在iOS8 8,iOS7 7,iOS8 7甚至iOS9 9(甚至到目前为止在我自己的测试中观察到的)之间都非常有效。

任何建议将非常有帮助!

最佳答案

收到苹果公司的官方回复:

已经确定这是由iOS 8中的错误引起的。
可以采取的措施是在受影响的设备上升级到iOS 9,
并敦促您的用户执行相同操作以避免此问题。

所以你有它。 iOS 8中的已知问题。移至iOS9。:/

关于ios - ios9和ios8之间出现意外的蓝牙对提示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32757241/

10-10 06:26