【发布时间】:2013-05-25 09:08:38
【问题描述】:
我正在为蓝牙外围设备进行 iOS 开发。我们希望(已经配对的)设备在按下按钮时连接,这将导致应用程序执行一些代码。即使在后台,应用程序是否可以检测到设备已连接?
另外,当检测到这种情况时,应用程序是否可以将自己置于前台?我需要成为 MFi 计划的成员才能做这些事情吗?
【问题讨论】:
标签: ios bluetooth external-accessory
我正在为蓝牙外围设备进行 iOS 开发。我们希望(已经配对的)设备在按下按钮时连接,这将导致应用程序执行一些代码。即使在后台,应用程序是否可以检测到设备已连接?
另外,当检测到这种情况时,应用程序是否可以将自己置于前台?我需要成为 MFi 计划的成员才能做这些事情吗?
【问题讨论】:
标签: ios bluetooth external-accessory
因为 ttarules 告诉你 iphone 无法自动连接到配对设备。
我不知道你的设备中有什么样的蓝牙接收器,但通常你可以设置一个“AUTOCALL”的方法来自动调用配对的设备(在这种情况下是 iPhone)。
当您(您的 iPhone)绕过设备时,它会自动建立连接!
如果您在蓝牙模块中正确设置了所有参数,您可以确保 iPhone 显示如下消息:“YourDevice would like access to YourApplication”连接已建立。
这种方式有助于用户使用您的应用程序,并且您可以在应用程序启动时运行上述代码。
【讨论】:
您将能够检测到设备已使用蓝牙 2.0 在后台连接,但是您必须在应用的 plist 中的 Required Background Modes 下包含 App communicates with an accessory 字符串。
所以是的,你问题的第一部分是可行的。但是,当您说:"We want the (already paired) device to connect when a button is pressed on it" 时,请务必注意此功能必须内置到设备的固件中。该应用程序始终可以搜索它,但设备在连接之前无法与手机通信。因此,该按钮必须唤醒设备并发出它现在想要连接的信号。
对于您问题的第三部分,您将无法在用户未打开应用的情况下将应用置于前台。
顺便说一句,CoreBluetooth 是 iOS 的低功耗蓝牙框架。它与蓝牙 2.0 完全不同。
【讨论】: