here
和
here
我需要什么
我需要能够唤醒我的应用程序从终止,发送和接收一些数据从蓝牙外围设备我自己编程。出于安全考虑,这是重要的数据,所以我绝对需要该应用程序来唤醒。然而,设备在大多数情况下并不是总是打开的,因此我需要在外围设备打开/关闭时处理这个用例。为此,我需要使用iBeacon唤醒应用程序,向盒子发送命令,获得响应,然后进入连续交换模式。如果外围设备关闭了,我不在乎,当它重新打开时,我需要重新启动连续数据交换过程。
我已经尝试了所有建议的背景“应用程序可玩”信息。plist项目…Voip、背景音频、iBeacon和蓝牙
didConnectPeripheral
/
didDisconnect
didEnterRegion
didExitRegion
方法在我插入/拔出设备时触发,这样至少有某种可靠的东西。
此外,即使我有机会配对,我现在也会被永久连接/配对(我不希望用户每次插入设备并关闭应用程序时都必须按“配对”)。除非用户进入蓝牙设置并“忘记设备”,否则我无法断开连接。因此,我刚刚失去了使用iBeacon在应用程序关闭后唤醒它的能力,因为现在只要应用程序通过蓝牙连接,iBeacon就永远不会启动。
我真的希望只在不需要连接或配对的用例中使用iBeacon吗?我是否应该以某种方式断开用户与外围设备的连接?
总和
总之,如果你需要连接/配对到外围设备,那么使用iBeacon唤醒应用程序是不可行的,因为在不再配对/连接之前,这些方法永远不会再次启动。如果我想找到一种神奇的方法,在应用程序死机时断开一个人的连接,然后恢复到iBeacon,那是行不通的,因为我似乎无法与后台配对,因此命令无法发送到外围设备。最后,如果我使用纯连接的蓝牙方法
didConnect
断开连接
方法在我插入/拔出设备时从不触发。