iOS 8 запускает приложение навсегда или отключает экран

Я строю систему домашней автоматизации, я выбрал iPad в качестве основного устройства-концентратора / моста для управления множеством устройств Bluetooth (некоторые изготовлены на заказ с использованием 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 минут.

Продолжай искать...

3 ответа

Решение

Попробуйте UIApplicationExitsOnSuspend решение:

С iOS 4 приложения приостанавливаются, когда вы нажимаете кнопку "Домой". До этого (iOS 3) они выходили и перезапускались каждый раз, когда вы открывали приложение - однако, если вы не использовали кнопку "Домой" для закрытия приложения, а вместо этого заблокировали устройство с открытым приложением iOS 3, оно будет работать в фоновом режиме навсегда, Вы можете заставить свои приложения работать так, добавив UIApplicationExitsOnSuspend ключ к вашей информации, установите значение YES,

Вы не сможете закрыть и снова открыть приложение так быстро (оно будет перезапускаться каждый раз, когда вы используете кнопку "Домой"), но если вы не очень часто взаимодействуете с iPad, тогда вы можете просто заблокировать устройство, пока приложение открыто. и он будет работать до тех пор, пока iPad не будет разблокирован или вы не откроете другое приложение.

Обратите внимание, что это решение действительно для App Store, так как оно использует официальные API Apple.

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

Все приложения получают до 10 минут, чтобы закончить то, что они делали, прежде чем приложение действительно будет приостановлено. Но в некоторых случаях им может понадобиться работать дольше, например, играть музыку или вычислять шаги. Это можно сделать с помощью обязательного фонового режима - режима, с помощью которого вы можете поддерживать приложение в фоновом режиме.

пожалуйста, посмотрите на изображения ниже:

Визит для фонового исполнения: Apple

Посетите ниже URL, это может быть полезно.

/questions/39735046/zapusk-prilozheniya-navsegda-v-fonovom-rezhime-v-ios-8/39735053#39735053

http://www.raywenderlich.com/29948/backgrounding-for-ios (для пояснения с примером кода.)

Надеюсь, это поможет в решении вашей проблемы.

Не могли бы вы обойти / взломать, запустив тишину в фоновом режиме. Я не могу представить, что это будет эффективным или лучшим решением, но это может быть обходной путь. Я знаю, что создатели Workflow также пытались обойти это и также достигли 10-минутного лимита. Обходной путь - просто отправить локальное уведомление на отметке 9 минут и попросить пользователя снова открыть приложение, чтобы оно могло продолжать работать.

Другие вопросы по тегам