iOS Получение данных из BLE в состоянии не работает - PullRequest
0 голосов
/ 09 января 2019

Я успешно получаю данные из BLE на переднем плане и в фоновом состоянии. А также вызвал соответствующий метод делегата базовой структуры Bluetooth.

После того, как пользователь принудительно покинул приложение, я хочу получить данные с устройства BLE. Можно ли получить данные из BLE в не запущенном состоянии? Или есть какой-нибудь метод, который будет вызываться в нерабочем состоянии, например, iBeacon?

1 Ответ

0 голосов
/ 09 января 2019

Я не думаю, что это возможно, если не использовать устройства iBeacon BLE. Как объясняется в Понимание того, когда ваше приложение запускается в фоновом режиме раздел:

Приложения, поддерживающие фоновое выполнение, могут быть перезапущены система для обработки входящих событий. Если приложение закрывается для любого По какой-либо другой причине, кроме принудительного выхода пользователя, система запускает приложение, когда происходит одно из следующих событий:

Для приложений Bluetooth:

  • Приложение, действующее в центральной роли, получает данные от подключенного периферийного устройства.
  • Приложение, играющее второстепенную роль получает команды от подключенного центра.

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

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

Но если приложение было убито системой, iOS будет обрабатывать его снова при вызове делегата.

...