在 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 类。