Быстрое уведомление на основе значения BLE, когда приложение не в фокусе

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

Часть функциональных возможностей этого устройства заключается в предупреждении пользователя, если одно из значений характеристики BLE выходит за пределы определенного диапазона. Когда приложение находится в фокусе, я могу сделать это через UIAlerts. Я играл с UserNotifications, и я могу активировать уведомление, пока приложение сфокусировано, чтобы уведомление появлялось через определенный интервал. Моя проблема заключается в попытке создать UserNotification на основе данных, поступающих через соединение BLE в приложении, которое не сфокусировано.

Я могу сказать по светодиодам на моем оборудовании, что соединение BLE поддерживается, даже когда я не в фокусе / заблокирован. Есть ли способ оценить данные из фонового соединения BLE и создать на их основе UserNotification?

Я нашел этот вопрос на StackExchange, задающий в основном то же самое, но я Я надеюсь, что через несколько лет ответов может быть больше.

Ваше здоровье,

Роджер


person Roger Archibald    schedule 13.01.2019    source источник
comment
Как ваше периферийное устройство уведомляет ваше приложение об изменении данных? Он использует BLE Notify? Если это так, вы сможете проверить атрибут и опубликовать локальное уведомление, если вы настроили свое приложение для фоновой работы.   -  person Paulw11    schedule 14.01.2019
comment
Вы должны отредактировать свой вопрос, чтобы показать соответствующий код, в котором вы получаете обновленные данные, и попытаться опубликовать локальное уведомление.   -  person Paulw11    schedule 14.01.2019
comment
Спасибо, Пол. Чтобы ответить на ваш вопрос о том, как я получаю информацию: мое периферийное устройство будет обновлять значение характеристики всякий раз, когда оно изменяется более чем на несколько единиц. Мое приложение настроено на уведомление об изменении значения, а затем я получаю новое значение с помощью обратного вызова 'didUpdateValue'. В настоящее время все это работает, и я могу получать новую информацию, пока мое приложение открыто. Я думаю, что вы, вероятно, направили меня в правильном направлении, когда сказали, что пока вы настроили свое приложение для фоновой работы, я новичок в разработке IOS, и я думаю, что моим следующим шагом будет исследование фоновой работы. Спасибо!   -  person Roger Archibald    schedule 14.01.2019


Ответы (1)


Paulw11 выше упомянул приложение, настроенное для фоновой работы, о котором я не знал (я действительно новичок в IOS, я скорее парень с прошивкой низкого уровня).

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

person Roger Archibald    schedule 14.01.2019