Новости продуктов

Как перенести Androidify на Wear OS с помощью функции "Отправить циферблат"

Время на чтение: 3 минуты
Посмотреть профиль Гарана Дженкина
Garan Jenkin Developer Relations Engineer

 

 

Несколько месяцев назад мы перезапустили Androidify как приложение для создания персонализированных ботов Android. Androidify превращает селфи в забавного робота Android с помощью Gemini и Imagen.

Однако Android используется на устройствах разных типов, включая XR, поэтому мы решили добавить Androidify в Wear OS.

Циферблат Androidify

Поскольку боты Androidify очень персонализированы, лучше всего показывать их на циферблате. Это не только самый заметный элемент, но и самый личный, позволяющий выразить себя.

demonstration.gif

Персонализированный циферблат Androidify, созданный на основе селфи

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

Общее описание

image.png

Процесс создания и установки циферблата

Чтобы обеспечить сквозной процесс, необходимо объединить несколько технологий, как показано на этой схеме.

Сначала аватар пользователя объединяется с существующим шаблоном Watch Face Format, который затем упаковывается в APK. Это подтверждено, и мы объясним почему. и отправлять их на часы.

После получения циферблата часами для его установки и активации используется новый Watch Face Push API, который входит в состав Wear OS 6.

Подробнее о том, как это работает:

Как создать шаблоны циферблатов

Циферблат создается на основе шаблона, разработанного в Watch Face Designer. Это новый плагин Figma, который позволяет создавать циферблаты в формате Watch Face Format прямо в Figma.

image.png

Шаблон циферблата Androidify в Watch Face Designer

Плагин позволяет экспортировать циферблат разными способами, в том числе как ресурсы Watch Face Format (WFF). Затем их можно легко добавить в качестве объектов в приложении Androidify, чтобы динамически создавать циферблаты.

Упаковка и проверка

После того как шаблон и аватар будут объединены, Portable Asset Compiler Kit (Pack) используется для сборки APK.

В Androidify Pack используется как нативная библиотека на телефоне. Подробнее о том, как Androidify взаимодействует с библиотекой Pack, можно узнать в репозитории GitHub.

На последнем этапе перед передачей APK-файл проверяется валидатором отправки циферблатов.

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

Он необходим для установки.

Отправка циферблата

Приложение Androidify для Wear OS использует WearableListenerService, чтобы отслеживать события на уровне данных Wearable.

Приложение "Телефон" передает циферблат, используя сочетание MessageClient для настройки процесса и ChannelClient для потоковой передачи APK.

Установка циферблата на часы

После того как циферблат будет получен на устройстве Wear OS, приложение Androidify использует новый Watch Face Push API, чтобы установить его.

val wfpManager = 

    WatchFacePushManagerFactory.createWatchFacePushManager(context)

val response = wfpManager.listWatchFaces()



try {

    if (response.remainingSlotCount > 0) {

        wfpManager.addWatchFace(apkFd, token)

    } else {

        val slotId = response.installedWatchFaceDetails.first().slotId

        wfpManager.updateWatchFace(slotId, apkFd, token)

    }

} catch (a: WatchFacePushManager.AddWatchFaceException) {

    return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR

} catch (u: WatchFacePushManager.UpdateWatchFaceException) {

    return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR

}

В Androidify используется метод addWatchFace или updateWatchFace в зависимости от сценария. Watch Face Push определяет концепцию "слотов" – сколько циферблатов может быть установлено в приложении одновременно. В Wear OS 6 это значение равно 1.

Androidify устанавливает циферблат, если есть свободный слот, а если нет, то заменяет им любой существующий циферблат.

Как установить активный циферблат

Установка циферблата программным способом – это отличный шаг, но Androidify стремится к тому, чтобы циферблат также был активным. 

В Watch Face Push добавлено новое динамическое разрешение, которое необходимо предоставить, чтобы приложения могли выполнять описанные выше действия:

com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE

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

Однако при работе с Androidify необходимо учитывать ряд факторов:

  • Данные этого типа (setWatchFaceAsActive) можно использовать только один раз.
  • SET_PUSHED_WATCH_FACE_AS_ACTIVE нельзя запросить повторно, если пользователь отклонил запрос.
  • Возможно, Androidify уже управляет активным циферблатом.

Подробнее о том, как Androidify реализует логику установки активного устройства…

Как начать работу с функцией "Отправка циферблатов" для Wear OS

Watch Face Push – это универсальный API, который подходит как для улучшения Androidify, так и для создания полноценных маркетплейсов циферблатов.

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

Или вы уже создаете циферблаты и хотите создать собственное сообщество и галерею, выпустив приложение-магазин?

Посмотрите следующие ресурсы:

Также рекомендуем посмотреть видео, в котором рассказывается, как мы перенесли Androidify на Wear OS.

Нам не терпится увидеть, что вы создадите с помощью Watch Face Push!

Автор:
Продолжить чтение