我有一个带有特定BLE设备的应用,但是问题是该设备需要配对才能正常工作。因此,第一个配对弹出窗口是自动的,但是用户可能无法输入正确的PIN或无意中将其取消,因此我现在无法再次显示它。我知道通过测试无法成功写入一个特性并导致配对失败,问题不仅在于在不重置整个应用和/或设备的情况下再次向用户显示配对对话框。
该怎么做?
答案 0 :(得分:0)
在大约几个小时的恋爱之后,我设法找到了解决方法。 第一个设备需要通过以下方式断开连接: cancelPeripheralConnection(_外周:CBPeripheral) 等待委托的断开连接响应,然后调用connect with: func connect(_外设:CBPeripheral,选项:[String:Any]?= nil) 这将再次触发配对对话框。
配对的另一个问题是: -将应用程序中的设备与手机取消配对-除非您转到手机设置并在那里“忘记”设备或杀死应用程序并重新启动,否则该设备将无法使用。 -没有用于配对对话框的回调或事件。作为开发人员,您永远无法知道配对是否成功。我所能做的就是设置一个计时器,并在15秒后检查配对是否成功(编写一些测试特性的东西),但这给代码带来了很多麻烦。令人遗憾的是,似乎苹果公司确实忘记了在iOS上进行配对,而对于macOS,IOBluetooth中提供了配对委托。