iOS Bluetooth Central,可靠的代理检测方法Connection/Disconnect
iOS Bluetooth Central, Reliable Delegate Method to Detect Connection/Disconnect
我想弄清楚哪些委托方法在终止时在后台连接/断开连接时可靠地触发。每当用户离我的 BLE 设备足够近时,我希望它自动连接,然后触发一种快速方法与设备交换数据。
我似乎无法让任何委托方法在这个用例中可靠地触发。我打开了 bluetooth-central
的后台模式,我使用了适当的委托,并且当应用程序处于活动状态或在任务切换器中时,我编写的整个 BT 模块工作得非常好。我只需要完成最后一个用例,应用程序被终止。
我最初的计划是使用 iBeacon,但这最终成为一种有缺陷的方法来唤醒已终止的应用程序,因为我 需要 蓝牙配对以保持并持续存在。让 iBeacon background/terminated 事件如 didEnterRegion
或 didExitRegion
触发的唯一方法是在应用程序运行后 "forget this device" (在 iOS 系统 BT 菜单中)通过与用户的 connecting/pairing 阶段。所以这是行不通的,因为除非用户为我这样做,否则该应用程序将永远无法与设备取消配对(我什至尝试在框中使用 AT+ 命令来擦除 auth/bond 并断开连接)。
所以...现在我剩下的唯一计划是找到一种方法,让 centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
和 didDisconnectPeripheral
方法在 iOS 系统重新连接时触发。因此,当设备打开或用户离得足够近以回到范围内时。
我终于找到答案了!可靠的方法绝对是 iBeacon ... 我认为我无法使用它,因为我使用的是蓝牙配对连接,并且当您的设备连接时 iBeacon 不会被广告。这是,"sorta" 正确的事实是你无法检测到已经连接到其他设备的设备的 iBeacon 输出......直到最近我才想到构建一个带有 2 个蓝牙芯片的电路板!
我所做的是将一个 BT 芯片用于专用 iBeacon ranger 以更稳定可靠的方式唤醒应用程序,而另一个芯片用于专用 BT connected/paired/auth/bonded 状态。现在,我可以在设备中使用我的加密自定义特征,以及让设备在终止或休眠后唤醒我的应用程序! :)
我提出了类似的问题并回答了。
我想弄清楚哪些委托方法在终止时在后台连接/断开连接时可靠地触发。每当用户离我的 BLE 设备足够近时,我希望它自动连接,然后触发一种快速方法与设备交换数据。
我似乎无法让任何委托方法在这个用例中可靠地触发。我打开了 bluetooth-central
的后台模式,我使用了适当的委托,并且当应用程序处于活动状态或在任务切换器中时,我编写的整个 BT 模块工作得非常好。我只需要完成最后一个用例,应用程序被终止。
我最初的计划是使用 iBeacon,但这最终成为一种有缺陷的方法来唤醒已终止的应用程序,因为我 需要 蓝牙配对以保持并持续存在。让 iBeacon background/terminated 事件如 didEnterRegion
或 didExitRegion
触发的唯一方法是在应用程序运行后 "forget this device" (在 iOS 系统 BT 菜单中)通过与用户的 connecting/pairing 阶段。所以这是行不通的,因为除非用户为我这样做,否则该应用程序将永远无法与设备取消配对(我什至尝试在框中使用 AT+ 命令来擦除 auth/bond 并断开连接)。
所以...现在我剩下的唯一计划是找到一种方法,让 centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
和 didDisconnectPeripheral
方法在 iOS 系统重新连接时触发。因此,当设备打开或用户离得足够近以回到范围内时。
我终于找到答案了!可靠的方法绝对是 iBeacon ... 我认为我无法使用它,因为我使用的是蓝牙配对连接,并且当您的设备连接时 iBeacon 不会被广告。这是,"sorta" 正确的事实是你无法检测到已经连接到其他设备的设备的 iBeacon 输出......直到最近我才想到构建一个带有 2 个蓝牙芯片的电路板!
我所做的是将一个 BT 芯片用于专用 iBeacon ranger 以更稳定可靠的方式唤醒应用程序,而另一个芯片用于专用 BT connected/paired/auth/bonded 状态。现在,我可以在设备中使用我的加密自定义特征,以及让设备在终止或休眠后唤醒我的应用程序! :)