【问题标题】:Continuously run an IOS app in the background even after sleep or reboot即使在睡眠或重启后也能在后台持续运行 IOS 应用程序
【发布时间】:2015-03-19 05:33:40
【问题描述】:

我需要在后台连续运行一个 iPhone 应用程序,以便它可以响应 CTCallCenter 和 CTTelephonyCenter 引发的事件。我一直在使用私有 API,但无法越狱手机。通过使用位置和 VOIP 后台模式,我已经能够在后台运行超过 IOS 10 分钟的限制。只要 iPhone 保持活动状态,一切都会正常运行,但是,当系统睡眠时间过长或重新启动时,应用程序将不再接收 CTCallCenter 和 CTTelephonyCenter 引发的事件,并停止定期记录其后台任务。但是,它可以接收定位事件,此时它会运行一小段时间,然后再次暂停。

如何确保应用始终处于活动后台状态,即使在睡眠或重启后也是如此?

【问题讨论】:

  • 简单的答案 - 你不能没有越狱或私有 APIs
  • 如前所述,我无法越狱,但我可以使用私有 API,有没有办法实现这一点?

标签: ios iphone background restart reboot


【解决方案1】:

我无需越狱手机或使用私有 API,就可以让应用在睡眠后继续运行。我怀疑它可能的,毕竟,我已经看到其他应用程序这样做了。

让应用保持清醒的关键是无限循环播放空的背景音频。所需的权限是 VOIP 和音频。即使手机睡了几个小时,后台循环也会继续执行。

本文的第二部分描述了这种方法: http://hayageek.com/ios-long-running-background-task/

这是一个 iPhone 应用示例的链接: http://hayageek.s3.amazonaws.com/downloads/ios/LongRunningBackgroundTask.zip

编辑:为了降低电池使用量,可以仅在 applicationDidEnterBackground 中短暂运行音频,这将重置 UIApplication.sharedApplication().backgroundTimeRemaining 的值

【讨论】:

  • 嗨,吉姆。我已经使用这篇文章在后台运行应用程序,它运行良好。但问题是 Apple 由于启用了该音频模式而拒绝了我的应用程序。那么我能为此做些什么。请帮帮我。
  • 我正在开发的应用程序用于内部部署 - 不幸的是,我不相信 Apple 会接受在商店中使用这项工作的应用程序。
  • 是的,Apple 不接受这种类型的概念。那么如何实现这种类型,同时获得苹果的认可。
  • 如果您的应用不需要 100% 的时间在后台运行。并且可以只在短时间内唤醒它,有两种可能性:您可以请求在发生重大位置变化时唤醒它或下载新内容。在这些情况下,IOS 决定何时唤醒您的应用程序,您无法控制它。也许您的需求与我的不同,这就足够了。在这里阅读:developer.apple.com/library/ios/documentation/iPhone/Conceptual/…
  • 嗨 Jim。我在 iOS 10.3 上试过这个,应用程序似乎在后台运行良好。但是手机重启后,应用程序不会自动启动。我们需要点击应用程序图标明确地启动它。你有没有检查过 iOS 10?
猜你喜欢
  • 1970-01-01
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多