我正在构建一个使用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/