香味

Flavor 指定了一组配置值,这些值以预设的形式分组。通常,用户可以在配套应用中从这些 Flavor 中进行选择。

Flavor 可以包含现有配置的值,包括以下类型:

  • BooleanConfiguration
  • ColorConfiguration
  • ListConfiguration
  • ComplicationSlot

从版本 2 开始

语法

<Flavor id="string" displayName="string" icon="string"
    screenReaderText="string" defaultValue="">
    <!-- Flavor-specific child elements. -->
    <Configuration ... />
    <ComplicationSlot .../>
<Flavor/>>

您可以在 UserConfigurations 元素中添加 Flavor 元素,如以下示例所示:

<UserConfigurations>
  <!-- Configuration definitions go here -->
  <ColorConfiguration id="themeColor" ... />
  <!-- ... -->

  <Flavors>
    <Flavor id="1" displayName="1st flavor" icon="flavor_1_preview" defaultValue="">
        <Configuration id="themeColor" optionId="0"/>
        <ComplicationSlot slotId="0">
            <DefaultProviderPolicy
                defaultSystemProvider="DAY_OF_WEEK"
                defaultSystemProviderType="SHORT_TEXT"/>
        </ComplicationSlot>
    </Flavor>

    <Flavor id="2" displayName="2nd flavor" icon="flavor_2_preview" defaultValue="">
        <Configuration id="themeColor" optionId="1"/>
        <ComplicationSlot slotId="0">
            <DefaultProviderPolicy
                defaultSystemProvider="WATCH_BATTERY"
                defaultSystemProviderType="SHORT_TEXT"/>
        </ComplicationSlot>
    </Flavor>
  </Flavors>
</UserConfigurations>

为了使用 Flavors,必须将以下内容添加到 res/xml/watch_face_info.xml 中:

<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
    ...
    <MultipleInstancesAllowed value="true" />
    <FlavorsSupported value="true" />
</WatchFaceInfo>

属性

Flavor 元素具有以下属性:

必需属性

以下属性是必需属性:

id
Flavor 的唯一标识符。
displayName
与随播广告素材中显示的文本对应的资源 ID。
defaultValue
此属性未使用,应留空。

可选属性

以下属性是可选属性:

icon
与随播广告素材中显示的可绘制资源对应的资源 ID。最大尺寸应为 360x360 像素。
screenReaderText
与用户已启用 TalkBack 时使用的文本对应的资源 ID。

内部元素

Flavor 元素必须包含至少一个 Configuration 元素,并且可以选择性地包含 ComplicationSlot 元素。

  • Configuration 元素使用 id 属性引用之前定义的配置元素,例如 BooleanConfigurationConfiguration 元素使用 optionId 属性为此配置选项设置选定的值。

  • ComplicationSlot 元素可用于为给定的 Flavor 指定 DefaultProviderPolicy