iOS 14 Beta 3之后的蓝牙配对问题

问题描述

我们使用iOS App作为外围设备,并使用设备作为中央设备,并遵循CBPeripheralManager示例来实现BLE配对流程。

FW遵循SMP(安全管理协议)实现,因此我们需要IRK (Identity Resolving Key)来完成配对流程。

NSDictionary *options = @{CBPeripheralManagerOptionRestoreIdentifierKey:@"IdentifierKey",CBPeripheralManagerOptionShowPowerAlertKey:[NSNumber numberWithBool:YES]}
CBPeripheralManager *peripheralManager  = [[CBPeripheralManager alloc] initWithDelegate:self
                                                                                    queue:nil
                                                                                options:options];
[peripheralManager startAdvertising:@{CBAdvertisementDataServiceUUIDsKey : @[serviceUUID]}];

不幸的是,iOS 14 Beta 3和更高版本存在问题。

直到iOS 14 beta 2:

在didSubscribetocharacteristic:委托之后,我们可以看到iPhone上弹出了一个系统配对蓝牙权限对话框,当用户单击“确定”时,FW可以从iOS获取IRK响应

iOS 14 beta 3和更高版本(Beta 3〜Beta 7):

在didSubscribetocharacteristic:委托之后,我们无法在iPhone上看到系统配对蓝牙权限对话框,因此FW无法从iOS获得IRK响应

我认为,用户单击配对对话框上的“确定”按钮时,SMP配对流程已完成,因为我们的设备可以接收IRK响应并完成配对流程,从而在设备与手机之间建立联系。但是由于某个未知错误,iOS 14 beta 3之后,警报将不会跳转,因此SMP配对流程无法完成。

是否有人有实现这样的BLE流或遇到相同问题的经验,是否有解决此问题的建议? 非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)