У меня есть одно устройство BLE (периферийное) и приложение для iOS, которые взаимодействуют друг с другом с помощью CoreBluetooth.framework (подключайтесь, отключайтесь, подписывайтесь, уведомляйте службы).Вот несколько сценариев:
- Приложение на переднем плане -> Я очень легко подключен к устройству BLE.
- Приложение находится вbackground -> Я получаю обратный вызов и подключаюсь к устройству BLE
- Приложение удалено из фона (Убить приложение) -> Я не получаю никакого обратного вызова, даже если яподключите устройство через iPhone Device-> Settings-> Bluetooth on -> Select Ble Device -> Connect.
Я гуглю и получаю Сохранение состояния и восстановление будет вызвано приложение,После глубокой езды:
Это также показывает принудительное завершение приложения пользователем, приложение не будетвозобновить или активировать, используя сохранение состояния и восстановление.
Я прочитал из это , это и это , есть некоторые пункты:
"Если вам нужно выполнить код, когда ваше приложение не запущено, вам будет предложено несколько вариантов в зависимости от того, что вы пытаетесь сделать. - Фоновая выборка позволит вашему приложению работать вфон в течение примерно 30 секунд с запланированным интервалом.Целью этого является получение данных и подготовка вашего пользовательского интерфейса к следующему запуску приложения. - Push-уведомления позволяют вашему приложению получать свежие данные с вашего сервера.если хотите, на устройстве появляется сообщение, но оно не требуется - тихие push-уведомления позволяют пропустить эту часть. - Локальные уведомления позволяют отображать предупреждениепользователю, а также любые медиа-вложения, которые выхочу и некоторые опции для пользователя на выбор.Если они выберут эти параметры, то ваше приложение может быть запущено на переднем плане или в фоновом режиме для их обработки. "
Я пробовал с Background Fetch, но он также не проснулся, когда приложение было прекращено.
Моя единственная цель - "Когда приложение завершается или уничтожается пользователем, при подключении устройства BLE приложение должно вызываться на переднем плане / фоне, чтобы я выполнял некоторые операции, такие как получение данных.из устройства BLE и сохраните его "
Использование фоновых режимов в проекте:
Другие фоновые режимы также не дают никакой подсказки:
Как этого добиться без использования push-уведомлений или тихих уведомлений? Если что-то в CoreBluetooth Framework, где приложение просыпается после завершения, дайте мне знать?