1

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

提前致谢

4

1 回答 1

4

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

如果你正在设计你的应用程序,core-bluetooth 有两种类型的后台启用。Event 和 Session。

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

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

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

  • 会话后台需要在您的 Apps info.plist 中进入 UIBackgroundModes、bluetooth-central 的后台模式条目。
于 2012-08-29T05:26:33.893 回答