2015-03-02 3 views
2

Я пытаюсь запустить свое приложение в фоновом режиме, когда BLE отключен. Но система будет убивать приложение через некоторое время. Так что я читаю документ Apple - «Core Bluetooth Руководство по программированию ".Отель Наконец я нашел следующий отрывок в«фоновой обработки ядро ​​Bluetooth для IOS Apps».IOS CoreBluetooth: приложение работает в фоновом режиме, когда BLE отключен

«Выполнение долгосрочных мероприятий в фоновом режиме

Некоторые приложения, возможно, потребуется использовать Основной интерфейс Bluetooth для выполнения долгосрочных действий на фоне . Например, представьте, что вы разрабатываете домашнее приложение безопасности для устройства iOS, которое взаимодействует с дверным замком (оснащен технологией Bluetooth с низким энергопотреблением). Приложение и блокировка взаимодействуют, чтобы автоматически блокировать дверь, когда пользователь уходит из дома и открывает дверь, когда пользователь возвращается - все, пока приложение находится в фоновом режиме. Когда пользователь уходит из дома, устройство iOS может в конечном итоге выйти из диапазона блокировки, в результате чего соединение с блокировкой будет потеряно. На этом этапе приложение может просто вызвать метод connectPeripheral: options: класса CBCentralManager, а поскольку запросы на соединение не истекают, устройство iOS будет повторно подключаться, когда пользователь вернется домой. Теперь представьте, что пользователь находится вдали от дома на несколько дней. Если приложение завершено системой, пока пользователь не работает, приложение не сможет подключиться к блокировке, когда пользователь вернется домой, и пользователь не сможет разблокировать дверь. Для таких приложений крайне важно иметь возможность продолжать использовать Core Bluetooth для выполнения долгосрочных действий, таких как мониторинг активных и ожидающих соединений ».

Из этого отрывка мы знаем, что« мониторинг активных и ожидающих соединений » can solve the problem Но я не могу найти способ реализации monitoring active and pending connections на

ядра Bluetooth Framework Reference

Как я могу осуществить это держать мое приложение работает в фоновом режиме, когда BLE отключен?

Кто-нибудь есть идеи?

ответ

6

Если зарегистрировать ваше приложение с помощью bluetooth-central Background Execution Mode, ваше приложение будет запущено, если он не работает, и получить его делегат методы называют для обработки обнаружения и соединения, такие как centralManager:didDiscoverPeripheral, из которого вы можете позвонить connectPeripheral:options:.

Это правда, что система может убить ваше приложение в фоновом режиме, но оно перезапустит его для этих событий.

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

+0

Система перезапустит приложение только в том случае, если пользователь не закрыл приложение вручную (дважды щелкнув кнопку «Дом» и вытащив его). В этом случае система не перезапустит ваше приложение, давая ему возможность повторно подключиться (потому что система предполагает, что пользователь не хочет, чтобы это приложение запускалось в этом случае). – Despotovic

+0

«Это правда, что система может убить ваше приложение в фоновом режиме, но оно перезапустит его для этих событий». На самом деле это ЛОЖЬ. Я проверил этот случай. Можете ли вы предоставить источники этого заявления? – BangOperator

+0

@BangOperator, в какой части вы тестировали и ошибаетесь? Что система может убить его в фоновом режиме? По словам Apple: «Когда вы проснулись, у приложения есть около 10 секунд, чтобы выполнить задание.В идеале он должен выполнить задачу как можно быстрее и позволить себе снова приостанавливаться. Приложения, которые тратят слишком много времени на выполнение в фоновом режиме, могут быть отключены системой или убиты. »И« ... система пробуждает ваше приложение, когда вызывается какой-либо из методов делегата CBCentralManagerDelegate или CBPeripheralDelegate, позволяя вашему приложению обрабатывать важные центральные события роли ... » –

Смежные вопросы