幾個月前,我們重新推出 Androidify,讓使用者透過應用程式製作個人化的 Android 機器人。Androidify 會使用 Gemini 和 Imagen,將自拍照轉換成有趣的 Android 機器人。
不過,Android 涵蓋多種板型規格, 包括最新推出的 XR,因此我們想,如何才能將 Androidify 的樂趣帶到 Wear OS 呢?
Androidify 錶面
Androidify 機器人是高度個人化的設計,因此最適合在錶面上展示。這不僅是曝光率最高的介面,也是最個人化的介面,可充分展現你的個人特色。
根據自拍照生成的個人化 Androidify 錶面
Androidify 現在可以在手機應用程式中動態產生錶面,然後傳送至手錶,並自動設為錶面。所有步驟只需要短短幾秒鐘!
整體設計
錶面建立和安裝的端對端流程
如要實現端對端體驗,必須整合多項技術,如這張高階設計圖所示。
首先,系統會將使用者的虛擬人偶與預先存在的錶面格式範本合併,然後封裝成 APK。這項說法已獲得驗證,原因稍後會說明!- 並傳送至手錶。
手錶收到後,會使用 Wear OS 6 的新 Watch Face Push API 安裝並啟用錶面。
詳細說明如下:
建立錶面範本
錶面是根據範本建立,而範本本身是在 Watch Face Designer 中設計。這是全新的 Figma 外掛程式,可讓您直接在 Figma 中建立錶面格式錶面。
錶面設計工具中的 Androidify 錶面範本
這個外掛程式可讓您以各種方式匯出錶面,包括匯出為錶面格式 (WFF) 資源。這些資產隨後可輕鬆併入 Androidify 應用程式,動態建構最終的錶面。
包裝和驗證
範本和虛擬人偶合併後,系統會使用可攜式資產編譯器套件 (Pack) 組裝 APK。
在 Androidify 中,Pack 會做為手機上的原生資料庫。如要進一步瞭解 Androidify 如何與 Pack 程式庫介接,請參閱 GitHub 存放區。
這個驗證器會檢查 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 會視情況使用 addWatchFace 或 updateWatchFace 方法: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,請觀看這部影片!
我們很期待您透過錶面推送功能打造的錶面!
繼續閱讀
-
產品新訊
盡可能確保 Google Play 提供最安全可靠的服務體驗。今天,我們宣布推出一系列新政策和帳戶轉移功能,進一步保障使用者隱私,並防範詐欺行為。
Bennet Manuel • 3 分鐘可讀完
-
產品新訊
現在使用 Android Emulator,就能輕鬆測試支援多種裝置的互動。
Steven Jenkins • 閱讀時間:2 分鐘
-
產品新訊
每位開發人員的 AI 工作流程和需求都不盡相同,因此選擇 AI 輔助開發的方式非常重要。我們在 1 月推出這項功能,讓您選擇任何本機或遠端 AI 模型,為 Android Studio 中的 AI 功能提供支援
Matthew Warner • 閱讀時間:2 分鐘
隨時掌握最新消息
每週透過電子郵件接收最新的 Android 開發洞察資料。