我需要在后台持续运行iPhone应用程序,以便它可以响应CTCallCenter和CTTelephonyCenter抛出的事件。我一直在使用私有API,但无法越狱手机。通过使用位置和VOIP背景模式,我已经能够在超过IOS 10分钟限制的后台运行。只要iPhone保持活动状态,一切运行良好,但是,当系统长时间睡眠或重新启动时,应用程序不再接收CTCallCenter和CTTelephonyCenter抛出的事件,并停止定期记录其后台任务。然而,它可以接收位置事件,此时它会运行一段时间,然后再次暂停。
即使在睡眠或重启后,如何确保应用始终保持活动的后台状态?
答案 0 :(得分:3)
我已经能够在睡眠后保持应用程序运行而不会越狱手机或使用私有API。我怀疑它是可能,毕竟我已经看过其他应用程序了。
让应用程序保持清醒的关键是在无限循环中播放空背景音频。需要的权限是VOIP和音频。即使手机睡了几个小时,背景循环也会继续执行。
本文的第二部分介绍了这种方法: http://hayageek.com/ios-long-running-background-task/
以下是iPhone应用示例的链接: http://hayageek.s3.amazonaws.com/downloads/ios/LongRunningBackgroundTask.zip
编辑:为了降低电池使用量,可以仅在applicationDidEnterBackground中以短暂间隔运行音频,这将重置UIApplication.sharedApplication()的值.backgroundTimeRemaining