產品新訊

透過錶面推送功能,將 Androidify 帶到 Wear OS

3 分鐘閱讀
Garan Jenkin
開發人員關係工程師

 

 

幾個月前,我們重新推出 Androidify,讓使用者透過應用程式製作個人化的 Android 機器人。Androidify 會使用 Gemini 和 Imagen,將自拍照轉換成有趣的 Android 機器人。

不過,Android 涵蓋多種板型規格, 包括最新推出的 XR,因此我們想,如何才能將 Androidify 的樂趣帶到 Wear OS 呢?

Androidify 錶面

Androidify 機器人是高度個人化的設計,因此最適合在錶面上展示。這不僅是曝光率最高的介面,也是最個人化的介面,可充分展現你的個人特色。

demonstration.gif

根據自拍照生成的個人化 Androidify 錶面

Androidify 現在可以在手機應用程式中動態產生錶面,然後傳送至手錶,並自動設為錶面。所有步驟只需要短短幾秒鐘!

整體設計

image.png

錶面建立和安裝的端對端流程

如要實現端對端體驗,必須整合多項技術,如這張高階設計圖所示。

首先,系統會將使用者的虛擬人偶與預先存在的錶面格式範本合併,然後封裝成 APK。這項說法已獲得驗證,原因稍後會說明!- 並傳送至手錶。

手錶收到後,會使用 Wear OS 6 的新 Watch Face Push API 安裝並啟用錶面。

詳細說明如下:

建立錶面範本

錶面是根據範本建立,而範本本身是在 Watch Face Designer 中設計。這是全新的 Figma 外掛程式,可讓您直接在 Figma 中建立錶面格式錶面。

image.png

錶面設計工具中的 Androidify 錶面範本

這個外掛程式可讓您以各種方式匯出錶面,包括匯出為錶面格式 (WFF) 資源。這些資產隨後可輕鬆併入 Androidify 應用程式,動態建構最終的錶面。

包裝和驗證

範本和虛擬人偶合併後,系統會使用可攜式資產編譯器套件 (Pack) 組裝 APK。

在 Androidify 中,Pack 會做為手機上的原生資料庫。如要進一步瞭解 Androidify 如何與 Pack 程式庫介接,請參閱 GitHub 存放區

在傳輸前,系統會先透過「錶面推送驗證工具」檢查 APK。

這個驗證器會檢查 APK 是否適合安裝。包括檢查 APK 內容,確保是有效的錶面,以及進行一些效能檢查。如果有效,驗證器就會產生權杖。

手錶必須使用這個權杖才能安裝應用程式。

正在傳送錶面

Wear OS 上的 Androidify 應用程式會使用 WearableListenerService 監聽 Wearable Data Layer 的事件。

手機應用程式會使用 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 會視情況使用 addWatchFaceupdateWatchFace 方法:Watch Face Push 定義了「位置」的概念,也就是特定應用程式在任何時間可安裝的錶面數量。在 Wear OS 6 中,這個值實際上是 1。

Androidify 的做法是安裝錶面 (如有可用空間),否則會將現有錶面換成新錶面。

設定使用中的錶面

以程式輔助方式安裝錶面是個很棒的步驟,但 Androidify 也會確保錶面是使用中錶面。

錶面推送功能導入了新的執行階段權限,應用程式必須取得這項權限,才能達成上述目的:

com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE

取得這項權限後,即可呼叫 wfpManager.setWatchFaceAsActive() 方法,將已安裝的錶面設為使用中錶面。

不過,Androidify 必須考量下列事項:

  • setWatchFaceAsActive只能使用一次。
  • SET_PUSHED_WATCH_FACE_AS_ACTIVE遭使用者拒絕後,就無法再次要求。
  • Androidify 可能已控管使用中的錶面。

詳情請參閱 Androidify 實作設定活動邏輯的方式。

開始使用 Wear OS 錶面推送功能

錶面推送 API 用途廣泛,不僅適合用來強化 Androidify,也適用於建構功能齊全的錶面市集。

您可能已有手機應用程式,並希望進一步吸引使用者,讓他們感到滿意。

或者,您是現有的錶面開發人員,想透過發布市集應用程式,建立自己的社群和圖庫?

請參閱下列資源:

如要深入瞭解我們如何將 Androidify 帶進 Wear OS,請觀看這部影片

我們很期待您透過錶面推送功能打造的錶面!

撰寫者:

繼續閱讀