iOS 6 CoreBluetooth 配对/遗忘(2个问题)

18

我们有一个可绑定的蓝牙4.0外设,并为其编写了一个iOS应用程序。

问题1

iOS 6中的CoreBluetooth是否可以使我们在应用程序内部从iOS Bluetooth设置中删除外围设备,还是仅限于进入iOS设置/蓝牙/我们的外围设备并选择“忘记此设备”?

我们试图做的是,当我们在应用程序内删除我们的外围设备时,我们期望该外围设备也从iOS蓝牙列表中删除。

问题2

我的第二个问题是,iOS SDK是否提供了一种确定用户在配对请求警报上选择了“配对”或“取消”的方法?目前,我们通过在设备连接时读取我们的服务/特征来确定用户按下了配对按钮。

Pairing example


2
为了回答问题1,我阅读文档的结论是,除了你提到的方法之外,通过iOS SDK没有其他方式可以执行“忘记此设备”。为了回答问题2(如果您还没有尝试过),可能是将您的应用程序的一部分设置为CBManagerCentralDelegate,然后在centralManager:didConnectPeripheral:centralManager:didFailToConnectPeripheral:中检查结果。我的想法是,如果显示蓝牙配对请求对话框的代码在选择配对取消时调用其中之一,您作为委托将看到响应。 - john.k.doe
WrightsCS我能够找到蓝牙硬件,但我无法得到这个警报,因此我无法在硬件上写入。请帮忙,如何获取此警报。 - Mangesh
2个回答

6
  • 问题1

不,我真的不这么认为。通过设置清除是唯一可能的方法。

  • 问题2

centralManager代理具有用于连接失败和成功连接的外围设备的回调,因此我会侦听它们以检查用户是否取消:didConnectPeripheraldidFailToConnectPeripheral


didConnectPeripheral在按下“配对”按钮时会触发,也可能不会触发……但是didFailToConnectPeripheral则似乎可以在取消时工作,但设备已经连接好了,弹出警示对话框之前。连接和配对并不是同一个概念。 - GoreDefex
1
此外,我猜自2012年首次发布以来,情况已经发生了变化,因为规范发生了巨大的变化 :) - chwi

-1
当你在配对对话框中点击“取消”时,iOS将调用委托方法“centralManagerDidUpdateState”,其状态为“CBCentralManagerResetting”。如果你点击“配对”(pair),则命令将正常进行。

那不对。至少在iOS 9+上不是这样。虽然我不知道2013年是否是这样。 - Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接