我需要在后台连续运行iPhone应用程序,以便它可以响应CTCallCenter和CTTelephonyCenter引发的事件。我一直在使用专用API,但无法越狱电话。通过使用定位和VOIP后台模式,我已经能够在超过IOS 10分钟限制的后台运行。只要iPhone保持活动状态,一切都可以正常工作,但是,当系统长时间睡眠或重新启动后,该应用程序将不再接收CTCallCenter和CTTelephonyCenter抛出的事件,并停止定期记录其后台任务。但是,它可以接收位置事件,这时它会运行一小段时间,然后再次暂停。
如何确保应用程序即使在睡眠或重新启动后也始终处于活动的后台状态?
睡眠后,我已经能够保持应用程序运行,而无需越狱电话或使用私有API。毕竟,我怀疑这是有可能的,我已经看到其他应用程序可以做到这一点。
保持应用程序清醒的关键是无限循环播放空的背景音频。所需的权限是VOIP和音频。即使电话处于睡眠状态数小时,后台循环也将继续执行。
本文的第二部分描述了这种方法:http : //hayageek.com/ios-long-running-background-task/
这是一个示例iPhone应用程序的链接:http : //hayageek.s3.amazonaws.com/downloads/ios/LongRunningBackgroundTask.zip
编辑:为了降低电池使用量,可以仅在applicationDidEnterBackground中短暂运行音频,这将重置UIApplication.sharedApplication()。backgroundTimeRemaining的值
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句