Android Wear的自定义表盘

9

已经有一些针对Android Wear的应用程序发布了自定义手表面板(像这样的)。它们不仅仅是简单地显示手表面板的应用程序;它们是完整的面板,在长按手表主屏幕时可选择。我找不到任何关于如何设置您的应用程序来提供自定义面板的文档。您如何配置您的应用程序以提供面板?

3个回答

18

编辑 随着Android Wear升级到Lollipop,现在有一个崭新的(更重要的是官方的)Android Wear手表表盘API。

您可以查看博客文章,阅读官方文档下载示例代码

下面的所有内容仅用于历史目的 :)


您只需要提供一个带有特定意图过滤器的Activity,并包含一些权限(信息来自这里)。

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的Google+帖子中非常详细地解释了包含WAKE_LOCK权限的原因。基本上,当手表变暗时,CPU进入低功耗状态,以便手表面板的更新不会立即显示。每当需要更新屏幕时获取PARTIAL_WAKE_LOCK就可以解决这个问题。


编辑请注意,这是一个“非官方”的API,根据Wayne Piekarski的帖子,当Android Wear升级到L版时,它可能会失效,因为官方API将被发布。


1
啊,找到了。权限是干嘛用的?似乎在 Wear 模拟器上没有它们也能工作,特别是 WAKE_LOCK 似乎不需要。 - Jarett Millard
也对WAKE_LOCK感到好奇 - Ariel Vardi
需要唤醒锁定。我在 G+ 社区发了一篇帖子讨论此问题。 - Sam
1
@Sam,你能详细说明一下为什么需要这样做吗?你有这篇文章的链接吗? - Jarett Millard
@Sam 非常聪明。如果我将这个观点纳入答案中,你介意吗?(当然要注明出处) - matiash
显示剩余2条评论

4

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接