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

Внедрение Androidify в Wear OS с помощью функции Watch Face Push

3 минуты чтения
Garan Jenkin
Инженер по связям с разработчиками

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

Однако, учитывая, что Android охватывает множество форм-факторов, включая наше новейшее дополнение, XR , мы подумали: как мы могли бы перенести удовольствие от использования Android на Wear OS?

Циферблат для часов Androidify

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

демонстрация.gif

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

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

Проектирование высокого уровня

image.png

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

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

Прежде всего, аватар пользователя объединяется с уже существующим шаблономформата циферблата , который затем упаковывается в APK-файл. Этот файл проверяется — по причинам, которые будут объяснены позже! — и отправляется на часы.

После получения данных часами новый API Watch Face Push , являющийся частью 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-файл проверяется валидатором Watch Face Push .

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

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

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

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

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

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

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

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 реализует логику установки активного элемента .

Начните работу с Watch Face Push для Wear OS.

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

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

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

Ознакомьтесь с этими ресурсами:

А также посмотрите прилагаемое видео , чтобы подробнее узнать, как мы интегрировали Androidify в Wear OS!

Мы с нетерпением ждём, что вы создадите с помощью Watch Face Push!

    Автор:

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