Wiadomości o usługach

Wprowadzanie Androidify na Wear OS za pomocą powiadomień push na tarczy zegarka

Czas czytania: 3 minuty
Wyświetl profil Garana Jenkinsa
Garan Jenkin Inżynier ds. relacji z programistami

 

 

Kilka miesięcy temu ponownie udostępniliśmy Androidify jako aplikację do generowania spersonalizowanych robotów Android. Androidify przekształca Twoje selfie w zabawnego bota Androida za pomocą Gemini i Imagen.

Android działa jednak na wielu urządzeniach, w tym na najnowszym z nich – XR. Zastanawialiśmy się więc, jak przenieść zabawę z Androidify na Wear OS.

Tarcza zegarka Androidify

Boty Androidify są wysoce spersonalizowane, więc naturalnym miejscem do ich prezentacji jest tarcza zegarka. Jest to nie tylko najczęściej widoczna, ale też najbardziej osobista platforma, która pozwala Ci przedstawić, kim jesteś.

demonstration.gif

Spersonalizowana tarcza zegarka Androidify wygenerowana na podstawie zdjęcia selfie

Androidify może teraz dynamicznie generować tarczę zegarka w aplikacji na telefon, a następnie wysyłać ją na zegarek, gdzie zostanie automatycznie ustawiona jako tarcza zegarka. Wszystko to dzieje się w ciągu kilku sekund.

Projekt wysokiego poziomu

image.png

Proces tworzenia i instalowania tarczy zegarka

Aby zapewnić kompleksowe działanie, należy połączyć ze sobą kilka technologii, jak pokazano na tym schemacie ogólnym.

Najpierw awatar użytkownika jest łączony z gotowym szablonem formatu tarczy zegarka, a następnie pakowany do pliku APK. Jest to uzasadnione z przyczyn, które wyjaśnimy. – i wysłana na zegarek.

Po otrzymaniu przez zegarek nowa funkcja Watch Face Push API (część Wear OS 6) służy do instalowania i aktywowania tarczy zegarka.

Przyjrzyjmy się szczegółom:

Tworzenie szablonów tarcz zegarka

Tarcza zegarka jest tworzona na podstawie szablonu zaprojektowanego w Watch Face Designer. To nasza nowa wtyczka do Figmy, która umożliwia tworzenie tarcz zegarka w Formacie tarczy zegarka bezpośrednio w Figmie.

image.png

Szablon tarczy zegarka Androidify w programie Watch Face Designer

Wtyczka umożliwia eksportowanie tarczy zegarka na różne sposoby, w tym jako zasoby Format tarczy zegarka (WFF). Można je łatwo zintegrować jako komponenty w aplikacji Androidify, aby dynamicznie tworzyć gotową tarczę zegarka.

Pakowanie i weryfikacja

Gdy szablon i avatar zostaną połączone, do złożenia pliku APK używany jest zestaw Portable Asset Compiler Kit (Pack).

W Androidify Pack jest używany jako biblioteka natywna na telefonie. Więcej informacji o tym, jak Androidify współpracuje z biblioteką Pack, znajdziesz w repozytorium GitHub.

Przed przesłaniem plik APK jest sprawdzany przez narzędzie do sprawdzania wysyłania tarcz zegarka.

Ten walidator sprawdza, czy plik APK nadaje się do instalacji. Obejmuje to sprawdzenie zawartości pliku APK, aby upewnić się, że jest to prawidłowa tarcza zegarka, a także sprawdzenie wydajności. Jeśli jest on prawidłowy, weryfikator generuje token.

Ten token jest wymagany przez zegarek do instalacji.

Wysyłanie tarczy zegarka

Aplikacja Androidify na Wear OS używa WearableListenerService do nasłuchiwania zdarzeń w warstwie danych urządzeń do noszenia.

Aplikacja na telefon przesyła tarczę zegara, używając kombinacji MessageClient do skonfigurowania procesu, a następnie ChannelClient do przesyłania strumieniowego pliku APK.

Instalowanie tarczy zegarka na zegarku

Gdy tarcza zegarka zostanie odebrana na urządzeniu z Wear OS, aplikacja Androidify użyje nowego interfejsu Watch Face Push API, aby ją zainstalować:

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 korzysta z metody addWatchFace lub updateWatchFace w zależności od scenariusza: Watch Face Push określa koncepcję „slotów” – ile tarcz zegarka może być zainstalowanych w danej aplikacji w dowolnym momencie. W przypadku Wear OS 6 ta wartość wynosi 1.

Aplikacja Androidify instaluje tarczę zegarka, jeśli jest dostępne wolne miejsce. W przeciwnym razie zastępuje nową tarczą jedną z dotychczasowych.

Ustawianie aktywnej tarczy zegarka

Programowe instalowanie tarczy zegarka to świetny krok, ale Androidify dba też o to, aby była ona aktywna. 

Funkcja Watch Face Push wprowadza nowe uprawnienie w czasie działania, które musi zostać przyznane, aby aplikacje mogły z niej korzystać:

com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE

Po uzyskaniu tego uprawnienia można wywołać metodę wfpManager.setWatchFaceAsActive(), aby ustawić zainstalowaną tarczę zegarka jako aktywną.

Androidify musi jednak uwzględniać kilka kwestii:

  • setWatchFaceAsActive można wykorzystać tylko raz.
  • SET_PUSHED_WATCH_FACE_AS_ACTIVE nie można ponownie poprosić po odrzuceniu przez użytkownika.
  • Androidify może już kontrolować aktywną tarczę zegarka.

Więcej informacji znajdziesz w artykule o tym, jak Androidify wdraża logikę ustawiania aktywności.

Pierwsze kroki z powiadomieniami push na tarczy zegarka z Wear OS

Watch Face Push to wszechstronny interfejs API, który sprawdza się zarówno w przypadku ulepszania aplikacji Androidify, jak i tworzenia w pełni funkcjonalnych platform z tarczami zegarka.

Może masz już aplikację na telefon i szukasz sposobów na zwiększenie zaangażowania użytkowników i zadowolenia z niej?

A może jesteś deweloperem tarcz zegarka, który chce stworzyć własną społeczność i galerię, publikując aplikację na platformie handlowej?

Zapoznaj się z tymi materiałami:

Obejrzyj też powiązany film, aby dowiedzieć się więcej o tym, jak przenieśliśmy Androidify na Wear OS.

Nie możemy się doczekać, co stworzysz za pomocą Watch Face Push!

Autorzy:
Czytaj dalej