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

Gre*_*sek 25 home-automation ipad ios swift

我正在构建家庭自动化系统,我选择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)
}
Run Code Online (Sandbox Code Playgroud)

此方法使应用程序仅在后台运行3分钟.

不停寻找...

Som*_*Guy 9

尝试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