几个月前,我们重新推出了 Androidify,将其作为一款用于生成个性化 Android 机器人的应用。Androidify 使用 Gemini 和 Imagen 将您的自拍照转换为有趣的 Android 机器人。
不过,考虑到 Android 涵盖多种设备规格, 包括我们最新添加的 XR,我们思考:如何将 Androidify 的乐趣引入 Wear OS?
Androidify 表盘
由于 Androidify 机器人是高度个性化的,因此展示它们的自然场所是表盘。表盘不仅是最常可见的界面,也是最私人的界面,可让您展示自己的身份。
根据自拍照生成的个性化 Androidify 表盘
Androidify 现在能够在手机应用中动态生成表盘,然后将其发送到您的手表,手表会自动将其设置为表盘。这一切都在几秒钟内完成!
概要设计
表盘创建和安装的端到端流程
为了实现端到端体验,需要将多种技术结合在一起,如本概要设计图所示。
首先,用户的头像与预先存在的表盘格式模板相结合,然后打包到 APK 中。此 APK 经过验证(原因稍后会说明!),然后发送到手表。
手表收到后,会使用新的 Watch Face Push API(Wear OS 6 的一部分)安装并激活表盘。
下面我们来详细了解一下:
创建表盘模板
表盘是根据模板创建的,而模板本身是在 Watch Face Designer 中设计的。这是我们的新 Figma 插件,可让您直接在 Figma 中创建表盘格式表盘。
Watch Face Designer 中的 Androidify 表盘模板
该插件允许以多种不同的方式导出表盘,包括作为表盘格式 (WFF) 资源。然后,这些资源可以轻松地作为 素材资源纳入 Androidify 应用中,以动态构建最终表盘。
打包和验证
将 模板和头像组合在一起后,便可以使用 Portable Asset Compiler Kit (Pack) 组装 APK。
在 Androidify 中,Pack 用作手机上的原生库。如需详细了解 Androidify 如何与 Pack 库交互,请参阅GitHub 代码库。
作为传输前的最后一步,APK 会由 Watch Face Push 验证器进行检查。
此验证器会检查 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 旨在确保表盘也是当前表盘。
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 如何实现设置当前表盘的逻辑。
开始使用适用于 Wear OS 的 Watch Face Push
Watch Face Push 是一款多功能 API,既适合增强 Androidify,也适合构建功能齐全的表盘市场。
也许您有一个现有的手机应用,并且正在寻找机会进一步吸引用户并让他们感到满意?
或者,也许您是现有的表盘开发者,希望通过发布市场应用来创建自己的社区和图库?
请查看以下资源:
- Watch Face Push
- 表盘格式 - 另请注意即将生效的与表盘发布相关的政策变更。
- Watch Face Designer
- Androidify GitHub 代码库
- Androidify Play 商店商品详情
此外,请观看随附的视频,深入了解我们如何将 Androidify 引入 Wear OS!
我们期待您使用 Watch Face Push 创作出精彩的作品!
继续阅读
-
产品新闻
Android Studio Panda 4 现已稳定,可在生产环境中使用。此版本引入了规划模式、“下一项修改预测”等功能,让您能够比以往更轻松地构建高质量的 Android 应用。
Matt Dyor • 5 分钟阅读时间
-
产品新闻
如果您是 Android 开发者,希望在应用中实现创新的 AI 功能,那么我们最近发布了强大的新更新。
Thomas Ezan • 3 分钟阅读时间
-
产品新闻
Android 17 已发布 Beta 版 4,这是此发布周期的最后一个计划 Beta 版,是应用兼容性和平台稳定性的重要里程碑。
Daniel Galpin • 4 分钟阅读时间
随时了解最新动态
每周将最新的 Android 开发洞见发送到您的收件箱 每周。