iOS 8 永远运行应用程序或禁用屏幕

标签 ios swift ipad home-automation

我正在构建一个家庭自动化系统,我选择了 iPad 作为主要的集线器/桥接设备来控制许多蓝牙设备(一些是使用 RFDuino 定制的)。

iPad (iOS 8.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)
}

这种方法只让应用在后台运行 3 分钟。

继续寻找...

最佳答案

尝试UIApplicationExitsOnSuspend解决方案:

由于 iOS 4 应用程序会在您按下主页按钮时暂停。在此之前(iOS 3),每次您打开应用程序时,它们都会退出并重新启动 - 但是,如果您没有使用主页按钮关闭应用程序,而是在打开 iOS 3 应用程序的情况下锁定设备,它将在后台运行<强>永远。您可以通过将 UIApplicationExitsOnSuspend 键添加到您的信息 plist 来让您的应用程序像这样工作,将值设置为 YES

您将无法快速关闭和重新打开应用程序(每次您使用主页按钮时它都会重新启动),但如果您不经常与 iPad 互动,那么您可以在锁定设备时锁定设备应用程序已打开,它将继续运行,直到 iPad 解锁或您打开另一个应用程序。

请注意,此解决方案适用于 App Store,因为它使用官方 Apple API。

https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

关于iOS 8 永远运行应用程序或禁用屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426201/

相关文章:

ios - Google Analytics iOS SDK 电子商务交易收入未显示

javascript - XCode Build 不更新 JS 和 HTML

ios - swift while 循环可以使用函数作为参数吗?

iphone - iOS 在数组中存储和加载多个 Web View

html - Ipad 上的绝对定位

ios - 怎样切椭圆?

ios - 即使应用程序未在 Swift 中运行也接收位置

ios - 如何添加IOS容器里面的 View ?

ios - 如何设置: 2015-06-17 05:25:21 +0000 as a let NSDate constant

iphone - 适用于移动设备的 OAuth2 流程