Устройства могут устанавливать соединение с интернетом либо напрямую, используя Wi-Fi или сотовую связь, либо косвенно, через сопряженное устройство Bluetooth.
Доступные и близлежащие узлы
Устройство считается доступным, когда оно находится в сети и может взаимодействовать с другим устройством, либо напрямую через Bluetooth, либо косвенно, используя облако в качестве посредника.
Устройство считается находящимся поблизости, если к нему можно подключиться напрямую через Bluetooth, без использования облачных сервисов.
Действия, влияющие на время восстановления соединения
При определенных обстоятельствах устройству может потребоваться до 4 минут для восстановления соединения. К таким сценариям относятся следующие:
- Бездействие устройства Wear OS: Если устройство Wear OS снимается с запястья пользователя или иным образом не используется активно в течение длительного периода времени, время повторного подключения может увеличиться.
- Режим Doze: режим энергосбережения Doze на портативном устройстве может ограничивать фоновые процессы, что потенциально увеличивает время повторного подключения устройства.
- Взаимодействие пользователя: Если пользователь начинает взаимодействовать одновременно с портативным устройством и устройством Wear OS, это часто ускоряет процесс повторного подключения.
Найдите все устройства, используя клиент Node.js.
Объект NodeClient идентифицирует и рассылает уведомления списку устройств Android, подключенных к сети, независимо от возможностей каждого устройства. Все приложения на устройстве получают эти уведомления о событиях, например, о подключении нового устройства к сети или об отключении существующего устройства от сети.
Класс NodeClient особенно полезен для обнаружения устройств, на которых не установлено ваше приложение.
Для регистрации событий подключения и отключения устройств можно использовать класс Horologist DataLayerAppHelper . Он предоставляет Flow connectedAndInstalledNodes для отслеживания состояния подключения. Кроме того, его метод connectedNodes() возвращает список подключенных устройств, объединяя информацию из NodeClient и CapabilityClient в один объект.
Обнаружение конкретных устройств с помощью клиента возможностей.
Объект CapabilityClient предоставляет информацию о том, какие устройства в сети Wear OS поддерживают определенные возможности приложения. Возможность — это функция, которую приложение определяет либо во время сборки , либо динамически настраивает во время выполнения .
Например, мобильное приложение для Android может рекламировать поддержку дистанционного управления воспроизведением видео. Версия этого приложения для Wear OS может использовать CapabilityClient для проверки того, установлена ли мобильная версия приложения на ближайшем устройстве и поддерживает ли она эту функцию. Если да, приложение для Wear OS может отобразить кнопки воспроизведения и паузы, чтобы пользователи могли управлять видео, воспроизводимым на их мобильном устройстве, со своего устройства Wear OS. Трансляция возможностей работает и в обратном направлении: приложения для Wear OS могут перечислять поддерживаемые ими возможности.
Проверьте наличие новых возможностей вашего приложения.
Используйте CapabilityClient для определения идентификатора узла устройства, с которым вам необходимо взаимодействовать. Например, если вам нужно проверить наличие новой функции в вашем приложении на портативных устройствах, создайте для этой новой функции соответствующую возможность на стороне портативного устройства. Затем ваше приложение Wear OS сможет запросить информацию об устройствах, поддерживающих эту возможность. Если возможность отсутствует на всех устройствах, это означает, что у пользователя нет версии вашего приложения, поддерживающей эту функцию, и вы должны корректно обработать это в логике вашего приложения. Если вы предполагаете, что портативное устройство всегда является правильным узлом для связи, ваши сообщения могут быть не доставлены, поскольку мобильное приложение не поддерживает эту функцию.
Определите, является ли устройство Wear OS единственным в сети.
Вы можете использовать CapabilityClient , чтобы проверить, должно ли ваше приложение работать в автономном режиме, поскольку поблизости нет других устройств на базе Android. Передав параметр FILTER_ALL , вы исключите другие устройства из результатов.