9

一些包含自定义表盘的 Android Wear 应用已经出现(比如这个)。它们不仅仅是简单地显示表盘的应用程序;它们是成熟的面孔,可以在长按手表的主屏幕时选择。我找不到任何有关如何设置您的应用程序以提供自定义面孔的文档。您如何配置您的应用程序以提供面孔?

4

3 回答 3

18

编辑 随着 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 时发生)。

于 2014-07-08T03:57:28.027 回答
4

编辑下面是我的一篇新博客文章,它解释了 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/

于 2014-07-18T18:25:44.890 回答
0

如果您想使用 OpenGL ES 创建表盘,那么我们在创建表盘方面的经验将对您有用:

http://androidworks-kea.blogspot.com/2015/02/developers-notes-v-custom-watch-faces.html

于 2015-04-04T07:17:11.403 回答