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