Базовая структура Bluetooth не отправляет данные в приложение iOS, когда приложение находится в фоновом режиме - PullRequest
0 голосов
/ 16 апреля 2019

Я создал приложение для iOS, которое обменивается данными с устройством с использованием Bluetooth Low Energy (BLE), который является базовой платформой Bluetooth.

Когда приложение работает в фоновом режиме, даже если устройство отправило данные на iPhone, платформа BLE не отправляет эти данные в приложение.

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

Это не всегда проблема. Это происходит в случайном порядке.

// application went to background 
2019/04/13 11:54:38:174  BLEManager# applicationDidEnterBackground
2019/04/13 11:54:38:176  BLEBackgroundTaskManager# applicationDidEnterBackground


// application receives data when it comes to foreground although this data was sent from device at 11:54:40:256
2019/04/13 12:39:36:149  CentralManager# Value received is <02>

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

1 Ответ

0 голосов
/ 16 апреля 2019

Обычно это означает, что вы не добавили функцию «Использование Bluetooth LE» в фоновые режимы.

enter image description here

...