2016-08-16 7 views
0

Поскольку яблоко документ является довольно расплывчатым относительно this point:Заставка для фона CoreBluetooth 10 секунд?

Upon being woken up, an app has around 10 seconds to complete a task 

Означает ли это, что после 10 секунд приложение будет вернуться к своей «подвешенном» состоянии? Теоретически, можно ли «заставить» приложение бодрствовать после этих 10 секунд? (личное приложение).

В моем случае устройство будет подключено к автомобилю.

ответ

1

Означает ли это, что через 10 секунд приложение вернется к своему «приостановленному» состоянию?

Если вы читали внимательно:

После того проснувшись, приложение имеет около 10 секунд, чтобы обработать данные . В идеале, он должен обрабатывать данные как можно быстрее, а позволяет снова приостанавливаться. Однако, если требуется больше времени, приложение может использовать метод beginBackgroundTaskWithExpirationHandler: метод для запроса дополнительного времени; он должен делать это только тогда, когда необходимо абсолютно .

приложение обычно просыпаются режимами фона (как услуги определения местоположения, аудио, толчок уведомление и так далее), а также для некоторых режимов, таких как услуги определения местоположения он будет бодрствовать до тех пор, данные о местоположении не быть захваченными и для некоторых, это Безразлично» не бодрствуй много времени, как push-уведомление. Таким образом, это зависит от выполняемой задачи. Для Bluetooth, если он подключен к другому устройству Bluetooth, он будет бодрствовать.

Теоретически, можно ли «заставить» приложение бодрствовать после этих 10 секунд? (личное приложение).

Да, это возможно.

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

Примечание: если вам это необходимо для вашего частного приложения, вы можете проверить это here. Ваше приложение будет отклонено, если вы добавите решение и подайте заявку на appstore.

+0

Из моего тестирования нет никакой гарантии, что iOS позволит вам работать более 10 секунд, даже если это требуется. Я бы это помнил. – Anton

0

Попробуйте это:

[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 
0

В XCode, перейдите в ваш project-> Capabilities-> Режимы Фон и отметьте Фоновые режимы ВКЛ. Марк также использует Bluetooth LE аксессуары:

enter image description here

приложения, которые работают с периферийными устройствами Bluetooth могут попросить разбудить, если периферийное обеспечивает обновление, когда приложение приостановлено. Эта поддержка важна для аксессуаров Bluetooth-LE, которые доставляют данные на частотах , например, в ремешок с ЧСС Bluetooth. Вы разрешаете поддержку для использования аксессуаров bluetooth из фоновых режимов раздел вкладки «Возможности» в вашем проекте Xcode. (Вы также можете включить эту поддержку, включив ключ UIBackgroundModes с центральным значением bluetooth в файле Info.plist вашего приложения.) Когда вы используете , этот режим поддерживает базовую инфраструктуру Bluetooth для активных активных сеансов для соответствующих периферийных устройств , Кроме того, новые данные , поступающие с периферийных устройств, заставляют систему пробуждать приложение так, чтобы мог обрабатывать данные. Система также пробуждает приложение к подключениям аксессуаров к технологическим аксессуарам и уведомлениям о разъединении.

Для получения более подробной информации вы можете обратиться к Apple documentation.

+0

Спасибо вам за ответ @Sunil Sharma. В настоящее время пример связан с аксессуаром, который отправляет данные, такие как монитор сердца, я забыл уточнить его, но в моем случае устройство будет связано с автомобилем. это все еще работает? И доклад doc о разбудили приложение, но он также точнее, чем у нас есть окно в 10 секунд для обработки события, после этих 10 секунд приложение вернется в приостановленное состояние? –

+0

Да, он по-прежнему будет работать, вы должны просто выбрать ** Внешние аксессуары ** в фоновом режиме. –