幾個月前,我們 重新推出 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 應用程式,動態建構最終的錶面。
包裝和驗證
範本和虛擬人偶合併後,系統會使用 Portable Asset Compiler Kit (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 方法:錶面推送功能定義了「位置」的概念,也就是特定應用程式在任何時間可安裝的錶面數量。在 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 持續擴大訂閱平台,協助您推動成長、適應新商業模式,並在使用者所在之處與他們互動。
Sheenam Mittal • 閱讀時間:4 分鐘 -
產品最新消息去年,Android Studio 開放使用任何 AI 模型。今天,我們將推出支援您選擇的程式碼編寫代理程式,
Matthew Warner • 3 分鐘小故事 -
產品最新消息Googlebook 推出全新類別的筆電,這些筆電都以共用的 Android 基礎架構為建構基礎。HP、Dell、Lenovo、Acer 和 Asus 等合作夥伴提供高效能硬體,結合行動裝置的便利性與桌機的強大功能。
Fahd Imtiaz, Loryn Hairston • 閱讀時間:4 分鐘
每週透過電子郵件接收最新的 Android 開發洞察資訊。