CoreBluetoothFramework - 它是否在未运行时启动IOS应用程序

时间:2012-04-23 06:24:03

标签: iphone ios ipad ios5 core-bluetooth

任何人都可以告诉我CoreBluetooth Framework是否能够启动应用程序(当它使用蓝牙检测到新设备时通知应用程序)。当应用程序没有在后台运行时。此外,我想知道应用程序在后台运行时的情况。根据文档,此框架将从挂起状态启动应用程序。任何人都可以分享一些关于此的信息,因为我没有Iphone 4S来测试它。

先谢谢

1 个答案:

答案 0 :(得分:4)

据我所知,在没有用户干预的情况下启动应用的唯一方法是您的应用使用VoIP服务。要检测蓝牙LE(BTLE)设备,CBCentralManager实例需要在您设计的应用程序的后台运行。否则,无法检测到附近的BTLE设备。

如果您正在设计应用程序,core-bluetooth有两种类型的后台启用。事件和会话。

事件背景
事件背景可能是大多数应用程序在与蓝牙低功耗设备交互时将使用的内容。当App处于后台时,此模式不允许与附件直接通信,但是当它想要与应用程序通信时确实提供来自附件的通知。当您的应用程序在后台时,iOS将保持与BTLE附件的连接,并将继续监视通知。当连接的BTLE附件有可用通知时,iOS将通知用户该附件想要与您的应用程序通信,允许用户加载您的应用程序并与附件进行交互。由于许多设备需要节省电力,因此仅在确定时间提供信息将大大延长配件和iPhone 4S的电池寿命。

- 此模式不需要info.plist条目。

会话背景
有时候应用程序必须与附件交互,即使它在后台运行。考虑一个需要实时监控心率的运行应用。这个模型有一个明确的START和STOP。用户在应用程序中运行它们。当运行处于活动状态时,应用程序会读取心率信息,直到运行完成或停止为止。在App处于后台时,会话后台还允许扫描和连接到BTLE附件。即使应用程序在后台,scanForPeripheralsWithServices或connectPeripheral也会继续调用。 CoreBluetooth将继续监控与您正在寻找的服务相匹配的特定外围设备或外围设备,并在找到或连接时致电您的应用代表。请注意,每次BTLE外围设备或iPhone 4S使用其无线电时,它都会耗尽各自的设备可用功率。使用基于会话的后台处理的应用程序开发人员必须注意电源使用情况。

  • 会话后台处理需要在您的Apps info.plist中输入UIBackgroundModes(bluetooth-central)的后台模式。