iOS 8 运行 应用永久或禁用屏幕
iOS 8 run app forever or disable screen
我正在构建一个家庭自动化系统,我选择 iPad 作为主要的 hub/bridge 设备来控制许多蓝牙设备(一些是使用 RFDuino 定制的)。
iPad(iOS8.4.1)挂在墙上,一直插着充电器。
我需要选择正确的方法让应用程序运行始终控制设备并接收更新、触发事件等
问题是:有没有办法让屏幕可视化?调暗它还不够好;最好关闭屏幕,比如设备锁定状态。
简单来说,我可以使用黑屏保护程序吗?
如果以上答案是否定的:有没有办法强制应用程序永远在后台运行?
这里要强调一件事。此应用不会进入 Apple Store,因此解决方案可能是一种肮脏的解决方法
提前致谢
目前已测试:
let backgroundQueue = dispatch_get_global_queue(QOS_CLASS_BACKGROUND,0)
func applicationDidEnterBackground(application: UIApplication) {
application.beginBackgroundTaskWithName("myBgTask", expirationHandler: nil)
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
func myBackgroundTask() {
NSThread.sleepForTimeInterval(1)
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
此方法仅使应用 运行ning 在后台运行 3 分钟。
继续搜索...
所有应用程序在真正暂停之前最多有 10 分钟的时间来完成它们正在做的事情。但在某些情况下,他们可能需要 运行 更长的时间,例如播放音乐或计算步数。可以使用 必需的后台模式 是您可以让您的应用程序 运行 永远在后台运行的模式。
请看下面的图片:
访问后台执行:Apple
访问下方 URL 可能会有帮助。
http://www.raywenderlich.com/29948/backgrounding-for-ios(用示例代码进行解释。)
希望对解决您的问题有所帮助。
你能bypass/hack 运行 在后台保持沉默吗?我无法想象这是有效的或最好的解决方案,但它可能是一种解决方法。我知道 Workflow 的创建者也试图绕过这一点,并且也达到了 10 分钟的限制。解决方法是简单地在 9 分钟标记处发送本地通知,并告诉用户再次打开应用程序,以便它可以继续 运行。
尝试 UIApplicationExitsOnSuspend
解决方案:
因为 iOS 4 个应用程序在您按下主页按钮时暂停。在此之前 (iOS 3) 它们会在您每次打开应用程序时退出并重新启动 - 但是如果您没有使用主页按钮关闭应用程序而是使用 iOS 3 应用程序锁定设备打开它将 运行 在后台 永远 。您可以通过将 UIApplicationExitsOnSuspend
键添加到您的信息 plist 来让您的应用程序像这样工作,将值设置为 YES
.
您将无法快速关闭和重新打开应用程序(每次您使用主页按钮时它都会重新启动),但如果您不经常与 iPad 互动,那么您可以只需在应用程序打开时锁定设备,它将继续 运行 直到 iPad 解锁或您打开另一个应用程序。
请注意,此解决方案适用于 App Store,因为它使用官方 Apple API。
我正在构建一个家庭自动化系统,我选择 iPad 作为主要的 hub/bridge 设备来控制许多蓝牙设备(一些是使用 RFDuino 定制的)。
iPad(iOS8.4.1)挂在墙上,一直插着充电器。
我需要选择正确的方法让应用程序运行始终控制设备并接收更新、触发事件等
问题是:有没有办法让屏幕可视化?调暗它还不够好;最好关闭屏幕,比如设备锁定状态。
简单来说,我可以使用黑屏保护程序吗?
如果以上答案是否定的:有没有办法强制应用程序永远在后台运行?
这里要强调一件事。此应用不会进入 Apple Store,因此解决方案可能是一种肮脏的解决方法
提前致谢
目前已测试:
let backgroundQueue = dispatch_get_global_queue(QOS_CLASS_BACKGROUND,0)
func applicationDidEnterBackground(application: UIApplication) {
application.beginBackgroundTaskWithName("myBgTask", expirationHandler: nil)
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
func myBackgroundTask() {
NSThread.sleepForTimeInterval(1)
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
此方法仅使应用 运行ning 在后台运行 3 分钟。
继续搜索...
所有应用程序在真正暂停之前最多有 10 分钟的时间来完成它们正在做的事情。但在某些情况下,他们可能需要 运行 更长的时间,例如播放音乐或计算步数。可以使用 必需的后台模式 是您可以让您的应用程序 运行 永远在后台运行的模式。
请看下面的图片:
访问后台执行:Apple
访问下方 URL 可能会有帮助。
http://www.raywenderlich.com/29948/backgrounding-for-ios(用示例代码进行解释。)
希望对解决您的问题有所帮助。
你能bypass/hack 运行 在后台保持沉默吗?我无法想象这是有效的或最好的解决方案,但它可能是一种解决方法。我知道 Workflow 的创建者也试图绕过这一点,并且也达到了 10 分钟的限制。解决方法是简单地在 9 分钟标记处发送本地通知,并告诉用户再次打开应用程序,以便它可以继续 运行。
尝试 UIApplicationExitsOnSuspend
解决方案:
因为 iOS 4 个应用程序在您按下主页按钮时暂停。在此之前 (iOS 3) 它们会在您每次打开应用程序时退出并重新启动 - 但是如果您没有使用主页按钮关闭应用程序而是使用 iOS 3 应用程序锁定设备打开它将 运行 在后台 永远 。您可以通过将 UIApplicationExitsOnSuspend
键添加到您的信息 plist 来让您的应用程序像这样工作,将值设置为 YES
.
您将无法快速关闭和重新打开应用程序(每次您使用主页按钮时它都会重新启动),但如果您不经常与 iPad 互动,那么您可以只需在应用程序打开时锁定设备,它将继续 运行 直到 iPad 解锁或您打开另一个应用程序。
请注意,此解决方案适用于 App Store,因为它使用官方 Apple API。