【问题标题】:iOS 6 CoreBluetooth Pairing / Forgetting (2 questions)iOS 6 CoreBluetooth 配对/忘记(2 个问题)
【发布时间】:2012-09-21 09:31:42
【问题描述】:

我们有一个可绑定的(当我们连接时,我们被要求配对,请参阅问题 2)我们已经制造并编写了一个 iOS 应用程序的蓝牙 4.0 外围设备。

问题 1

是否可以在带有 CoreBluetooth 的 iOS 6 中从我们的应用程序中的 iOS 蓝牙设置中删除我们的外围设备,或者这是否仅限于转到 iOS 设置/蓝牙/我们的外围设备和“忘记此设备”。

我们正在尝试做的是,当我们从应用中移除外围设备时,我们希望该外围设备也会从 iOS 蓝牙列表中移除。

问题 2

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

【问题讨论】:

  • 回答 q1,我对文档的阅读是,除了您提到的内容之外,无法通过 iOS SDK 执行“忘记此设备”。回答问题 2(如果您还没有尝试过)可能是将您的应用程序的一部分设置为 CBManagerCentralDelegate,然后在 centralManager:didConnectPeripheral:centralManager:didFailToConnectPeripheral: 中检查结果。我的想法是,如果打开 Bluetooth Pairing Request 对话框的代码然后在选择 PairCancel 时调用其中之一,那么您代表将看到响应。
  • WrightsCS 我可以找到蓝牙硬件,但我没有收到此警报,这就是我无法在硬件上写字的原因。请帮忙,我怎样才能得到这个警报。

标签: objective-c ios6 core-bluetooth bluetooth-lowenergy


【解决方案1】:
  • 问题 1

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

  • 问题 2

centralManager 委托对失败和成功连接的外围设备都有回调,所以我会听他们检查用户是否取消:didConnectPeripheraldidFailToConnectPeripheral

【讨论】:

  • didConnectPeripheral 在有或没有按“pair”的情况下触发... didFailToConnectPeripheral 似乎在取消时工作,但设备在警报对话框出现之前很久就已连接。连接和配对不是一回事。
  • 另外,我想从 2012 年的初始版本开始,情况已经发生了变化,因为规范发生了巨大变化 :)
【解决方案2】:

当您在绑定对话框上单击“取消”时,iOS 将调用委托方法“centralManagerDidUpdateState”,状态为“CBCentralManagerResetting”。如果您单击配对,则该命令将正常执行。

【讨论】:

  • 这是不对的。至少在 iOS 9+ 上没有。我不知道 2013 年是不是这样
猜你喜欢
  • 2011-11-10
  • 2012-11-13
  • 2015-05-21
  • 2012-12-07
  • 2012-09-27
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多