The Android Developer Challenge is back! Submit your idea before December 2.

在 Wear OS 上提供配置 Activity

一些表盘主题支持配置参数,可让用户自定义表盘主题的外观和行为。例如,有些表盘主题可让用户选择自定义背景颜色,而显示两个不同时区的时间的表盘主题可让用户选择他们感兴趣的时区。

请参阅以下相关资源:

支持配置参数的表盘主题可让用户使用穿戴式设备应用中的 Activity 和/或手持式设备应用中的 Activity 自定义表盘主题。用户可以在穿戴式设备上启动穿戴式设备配置 Activity。他们还可以从手持式设备应用(如果已安装该应用的话)中启动配套设备配置 Activity。

注意:在 Wear 1.x 中,当用户安装包含穿戴式设备应用的手持式设备应用时,穿戴式设备应用会自动安装到手表上。在 Wear 2.0 中,穿戴式设备应用绝不会自动安装到手表上。此外,在 Wear 2.0 中,不需要安装手持式设备应用。如果存在手持式设备应用并且您想要使用该应用,则必须单独安装它。

WatchFace 示例中的数字表盘主题演示了如何实现手持式设备和穿戴式设备配置 Activity,以及如何在发生配置更改时更新表盘主题。

为配置 Activity 指定 Intent

如果您的表盘主题包含配置 Activity,请将以下元数据条目添加到穿戴式设备应用的清单文件中的服务声明:

    <service
        android:name=".DigitalWatchFaceService" ... />
        <!-- companion configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.companionConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        <!-- wearable configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.wearableConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        ...
    </service>
    

为这些条目提供值(以应用的软件包名称开头)。配置 Activity 会为此 Intent 注册 Intent 过滤器,而系统会在用户想要配置您的表盘主题时触发此 Intent。

如果您的表盘主题仅包含配套设备或穿戴式设备配置 Activity,那么您只需在上面的示例中添加相应的元数据条目。

创建穿戴式设备配置 Activity

穿戴式设备配置 Activity 为表盘主题提供了一组有限的自定义选项,因为复杂的菜单很难在较小的屏幕上浏览。您的穿戴式设备配置 Activity 应该提供二进制选项,并且只需选择几项内容即可自定义表盘主题的主要方面。

要创建穿戴式设备配置 Activity,请向穿戴式设备应用模块中添加新的 Activity,并在穿戴式设备应用的清单文件中声明以下 Intent 过滤器:

    <activity
        android:name=".DigitalWatchFaceWearableConfigActivity"
        android:label="@string/digital_config_name">
        <intent-filter>
            <action android:name=
                "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
            <category android:name=
            "com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    

此 Intent 过滤器中的操作名称必须与您在为配置 Activity 指定 Intent 中定义的 Intent 名称一致。

在您的配置 Activity 中,构建一个简单的界面,用来为用户提供自定义表盘主题的选项。当用户进行选择时,请使用 Wearable Data Layer API 将配置更改传送到表盘主题 Activity。

如需了解详情,请参阅 WatchFace 示例中的 DigitalWatchFaceWearableConfigActivityDigitalWatchFaceUtil 类。

创建配套设备配置 Activity

配套设备配置 Activity 可让用户访问表盘主题的全套配置选项,因为在手持设备的大屏幕上与复杂菜单进行互动更为方便。例如,通过手持设备上的配置 Activity,您可以向用户提供精心挑选的颜色选择器,以选择表盘主题的背景颜色。

注意:只能为运行 Android 的手持式设备编写配置 Activity。

要创建配套设备配置 Activity,请向手持设备应用模块中添加新的 Activity,并在手持设备应用的清单文件中声明以下 Intent 过滤器:

    <activity
        android:name=".DigitalWatchFaceCompanionConfigActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name=
                "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
            <category android:name=
            "com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    

在您的配置 Activity 中,构建一个界面来提供自定义您表盘主题的所有可配置元素的选项。当用户进行选择时,请使用 Wearable Data Layer API 将配置更改传送到表盘主题 Activity。

如需了解详情,请参阅 WatchFace 示例中的 DigitalWatchFaceCompanionConfigActivity 类。

在穿戴式设备应用中创建监听器服务

要从配置 Activity 接收更新的配置参数,请通过 Wearable Data Layer API 在您的穿戴式设备应用中创建一个实现 WearableListenerService 接口的服务。当配置参数发生更改时,您的表盘主题实现可以重新绘制表盘主题。

如需了解详情,请参阅 WatchFace 示例中的 DigitalWatchFaceConfigListenerServiceDigitalWatchFaceService 类。