我在 Iphone-4s 中为我的应用程序使用核心蓝牙框架。
这通常必须是一个可以运行尽可能长时间的后台应用程序。
现在它只运行 40 分钟 - 最多 1 小时。
我希望至少有 1 天左右。
对于此“蓝牙中心”值,在 .plist 文件的“所需背景模式”键中添加。
最后,我的应用程序似乎将进入“暂停”模式。因为当我再次打开应用程序(后台到前台状态)时,它再次发送通知,这意味着蓝牙连接仍然连接并且 BLE 设备仍在发送通知。如果我按下主页按钮并且应用程序进入后台,它不会再次收到通知。
谁能告诉我为什么我的应用程序最多只能在后台模式下运行 1 小时。它应该像普通的音乐应用程序一样在后台继续运行,就像永远一样。
Apple 是否具体说明了后台应用程序(属于 5 类中连续运行的后台应用程序之一)在哪种情况下会进入挂起模式?
参考“ iPhoneAppProgrammingGuide
”,在“ Communicating with a Bluetooth Accessory
”部分,我知道,对于蓝牙 LE 应用程序 2 实现的长时间运行后台任务是必要的:
Info.plist
1) UIBackgroundModes 键在文件中应该是“bluetooth-central” 。2)任何支持蓝牙数据后台处理的应用程序都必须是基于会话的。
因此,对于我的应用程序,FIRST 实现已被合并,并且该应用程序能够在后台运行并在最长 1 小时的时间内完成所有任务。
现在我需要实施第二次实施。即基于会话。根据文档,即使应用程序处于“暂停”状态,这也将允许获取事件。我试图找到创建特定于蓝牙 LE(核心蓝牙框架)的合适会话,例如EASession
经典蓝牙(外部附件框架)的“”。但我没有找到。
基本上我不确定我需要为 BLE 使用哪个会话类。对于音频/视频、网络和互联网、外部配件,有单独的会话课程可供选择。核心蓝牙框架没有。
任何人都可以帮助我,哪个会话类适合 BLE。