Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 8永远运行应用程序或禁用屏幕_Ios_Swift_Ipad_Home Automation - Fatal编程技术网

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

iOS 8永远运行应用程序或禁用屏幕,ios,swift,ipad,home-automation,Ios,Swift,Ipad,Home Automation,我正在构建一个家庭自动化系统,我选择iPad作为主要的集线器/桥接器来控制许多蓝牙设备(有些是使用RFDuino定制的) iPad(iOS 8.4.1)安装在墙上,一直插在充电器上 我需要选择正确的方法使应用程序始终运行,以控制设备、接收更新、触发事件等 问题是:有没有办法在视觉上禁用屏幕?把它调暗是不够的;最好是关闭屏幕,如在锁定设备状态下 简单地说,我可以使用黑屏保护程序吗 如果上面的答案是否定的:有没有办法强迫应用程序永远在后台运行 这里要强调一件事。此应用程序不会进入苹果商店,因此解决方

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

iPad(iOS 8.4.1)安装在墙上,一直插在充电器上

我需要选择正确的方法使应用程序始终运行,以控制设备、接收更新、触发事件等

问题是:有没有办法在视觉上禁用屏幕?把它调暗是不够的;最好是关闭屏幕,如在锁定设备状态下

简单地说,我可以使用黑屏保护程序吗

如果上面的答案是否定的:有没有办法强迫应用程序永远在后台运行

这里要强调一件事。此应用程序不会进入苹果商店,因此解决方案可能是一个肮脏的解决办法

提前谢谢

到目前为止进行了测试:

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分钟


继续搜索…

在应用程序真正挂起之前,所有应用程序最多有10分钟的时间完成它们正在做的事情。但在某些情况下,他们可能需要运行更长的时间,如播放音乐或计算步骤。可以使用所需的后台模式来完成此操作。是您可以让应用程序永远在后台运行的模式

请看以下图片:

后台执行访问:

访问下面的URL,可能会有所帮助

(用于解释示例代码。)


希望它有助于解决您的问题。

您可以通过在后台运行沉默来绕过/破解。我无法想象这是一个有效或最好的解决方案,但它可能是一个解决办法。我知道工作流的创建者也试图绕过这一限制,并且也达到了10分钟的限制。解决方法是在9分钟后发送一个本地通知,并告诉用户再次打开应用程序,以便它可以继续运行

尝试
UIApplicationExitsOnSuspend
解决方案:

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

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

请注意,此解决方案对应用商店有效,因为它使用苹果官方API


通过“禁用屏幕”,您是否希望阻止用户使用iPad,并且不允许用户解锁设备?否。我所希望的不是看着挂在墙上的ipad屏幕,而是在后台执行完整的应用程序功能。它应该像一个典型的屏幕保护程序一样工作。在任何输入上都应该回到实时状态,一段时间后应该回到黑屏状态使用Android平板电脑是更好的选择,因为它更易于定制。我家的Droid不是一个选项。无论如何。问题是你能用手机代替iPad吗?如果您将UIApplication
proximityMonitoringEnabled
属性设置为
YES
并覆盖接近传感器(靠近耳朵扬声器的点,而不是摄像头),它应该会自动关闭屏幕,而不会将您的应用程序发送到背景。仍在研究Ray Wenderlich的内容。测试所有的方法。目前只能在后台运行不超过3分钟。iOS 8.4.1中有一些更改,以防止人为扩展应用程序life@CaptJak-您应该首先阅读苹果公司提供的文档。如果在后台没有处理,应用程序将终止。@GregLukosek如果你的应用程序播放一些音频,那么你可以永远在后台运行。例如,spotify或podcast应用程序可以在后台无限期运行。你播放的声音实际上不必通过扬声器就能听到(只需在重复播放时播放无声音轨)。这样做会使你的应用被禁止进入应用商店,但对于内部应用来说,它工作得非常好。因此,这意味着我必须每10分钟重新激活一次应用,这根本不是一个解决方案。运行测试一夜。看起来很有希望。手指交叉看起来我们赢了!应用程序刚刚超过10分钟的阈值,并且在屏幕关闭的情况下工作正常。谢谢你,先生!谢谢你的赏金@Damo