Потеря данных после потери в фоновом режиме - PullRequest
0 голосов
/ 13 марта 2019

У меня есть приложение для iPhone, которое получает информацию BLE с определенного устройства. Устройство отправляет данные в мое приложение каждый раз, когда ему есть что сообщить, и скорость передачи составляет около 2 Кбайт в секунду.

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

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

PS: я добавил Bluetooth-централ под UIBackgroundModes в Info.plist. В фоновом режиме didUpdateValueForCharacteristic: метод вызывается. Кроме того, CBCentralManagerOptionRestoreIdentifierKey указывается при создании CBCentralManager.

1 Ответ

0 голосов
/ 15 марта 2019

На iOS вы можете убедиться, что ваше приложение не полностью уничтожено системой, используя State Preservation and Restoration.Пожалуйста, просмотрите следующую ссылку для получения дополнительной информации: -

Базовая обработка фона Bluetooth для iOS

Однако, обратите внимание, что вы не можете использовать это, если вы принудительно убиваетеприложение.Более подробная информация об этом содержится в следующем вопросе: -

Устройство BLE поддерживает соединение с iPhone после завершения работы приложения

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...