Есть ли способ проверить, активна ли в настоящее время подписка orion (подписка на атрибуты, а не подписка на доступность контекста) или срок ее действия истек? Что-то похожее на discoverContextAvailability
для контекстной информации.
Пример использования:
- Я добавляю сенсорное устройство в свое приложение
- Зарегистрируйте контекст и подписку для этого устройства на Orion.
- С этого момента подписка работает и периодически возвращает данные датчиков в мое приложение.
- Теперь по истечении срока подписки данные просто перестают поступать
Каков рекомендуемый способ продления этой подписки? Как вы можете знать, что он истек в первую очередь?
Единственный способ, которым я это вижу, - это сохранить дату истечения срока действия в моем приложении после создания подписки и запустить запланированную задачу, чтобы продлить ее на эту дату.
Другой способ — продлевать все подписки через фиксированные промежутки времени (например: сделать все подписки активными на 2 месяца и каждый месяц запускать задачу продления).
Лучшим и самым простым способом было бы зарегистрировать подписку без продолжительности (неограниченной продолжительности), но я не вижу такой опции нигде в документации.
Аналогичная проблема существует и с регистрацией контекста, но я решил ее с помощью метода discoverContextAvailability
. Перед каждым queryContext
или updateContext
я проверяю, истек ли срок действия контекста с помощью discoverContextAvailability
. Если это так, я регистрирую его снова и продолжаю запрашивать или обновлять запросы.
Я знаю, что есть subscribeContextAvailability
, но у него та же проблема, что и у подписок на атрибуты. Когда срок действия истекает, как узнать, что он истек, и как его продлить?