问题描述
我们使用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 (将#修改为@)