一些包含自定义表盘的 Android Wear 应用已经出现(比如这个)。它们不仅仅是简单地显示表盘的应用程序;它们是成熟的面孔,可以在长按手表的主屏幕时选择。我找不到任何有关如何设置您的应用程序以提供自定义面孔的文档。您如何配置您的应用程序以提供面孔?
3 回答
编辑 随着 Android Wear 对 Lollipop 的更新,Android Wear Watch Faces 有一个全新的(更重要的是官方的)API。
您可以查看有关该主题的博客文章、阅读官方文档或下载示例代码。
这条线以下的所有内容仅用于历史目的:)
您只需要提供一个带有特定意图过滤器的 Activity,并包含一些权限(来自此处的信息)。
活动:
<activity
android:name=".WatchActivity"
android:allowEmbedded="true"
android:theme="@android:style/Theme.DeviceDefault.NoActionBar"
android:label="@string/watch_preview_name">
<meta-data
android:name="com.google.android.clockwork.home.preview"
android:resource="@drawable/watch_preview_image" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.google.android.clockwork.home.category.HOME_BACKGROUND" />
</intent-filter>
</activity>
和权限:
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
顺便说一句,您在 Play 商店中提到的应用程序的源代码也可以在 github 上找到。
Sam Duke的这篇 G+ 帖子很好地解释了包含 WAKE_LOCK 权限的原因。基本上,当手表变暗时,CPU 进入低功耗状态,因此不会立即显示对表盘显示的更新。每当屏幕需要更新时获取 PARTIAL_WAKE_LOCK 可以解决此问题。
编辑 请注意,这是一个“非官方”API,根据 Wayne Piekarski 的这篇文章,它可能会在未来发布官方 API 时中断(这应该在 Android Wear 升级到 L 时发生)。
编辑:下面是我的一篇新博客文章,它解释了 Lollipop 中的新 Watch Face API。
http://toastdroid.com/2014/12/10/developing-a-watch-face-for-android-wear-lollipop/
我写了一篇博客文章,描述了开发表盘的过程。
http://toastdroid.com/2014/07/18/developing-watchfaces-for-android-wear/
如果您想使用 OpenGL ES 创建表盘,那么我们在创建表盘方面的经验将对您有用:
http://androidworks-kea.blogspot.com/2015/02/developers-notes-v-custom-watch-faces.html