在iOS上的不成功配对中获取BLE配对对话框

时间:2019-11-23 10:57:25

标签: ios swift bluetooth-lowenergy

我有一个带有特定BLE设备的应用,但是问题是该设备需要配对才能正常工作。因此,第一个配对弹出窗口是自动的,但是用户可能无法输入正确的PIN或无意中将其取消,因此我现在无法再次显示它。我知道通过测试无法成功写入一个特性并导致配对失败,问题不仅在于在不重置整个应用和/或设备的情况下再次向用户显示配对对话框。

该怎么做?

1 个答案:

答案 0 :(得分:0)

在大约几个小时的恋爱之后,我设法找到了解决方法。 第一个设备需要通过以下方式断开连接: cancelPeripheralConnection(_外周:CBPeripheral) 等待委托的断开连接响应,然后调用connect with: func connect(_外设:CBPeripheral,选项:[String:Any]?= nil) 这将再次触发配对对话框。

配对的另一个问题是: -将应用程序中的设备与手机取消配对-除非您转到手机设置并在那里“忘记”设备或杀死应用程序并重新启动,否则该设备将无法使用。 -没有用于配对对话框的回调或事件。作为开发人员,您永远无法知道配对是否成功。我所能做的就是设置一个计时器,并在15秒后检查配对是否成功(编写一些测试特性的东西),但这给代码带​​来了很多麻烦。令人遗憾的是,似乎苹果公司确实忘记了在iOS上进行配对,而对于macOS,IOBluetooth中提供了配对委托。