使用Watch Face Format XML开发表盘:手机端Complication仅显示Empty选项问询
问题:手机端Watch应用仅显示“Empty” complication选项,手表端正常
我用Watch Face Format XML创建智能手表表盘时,遇到一个问题:手机端Watch应用里的complication插槽只提供“Empty”选项,但手表端能正常显示所有可用选项。想问问有没有其他开发者碰到过同样的问题?这是Wear应用的已知问题(其他表盘能正常显示complication选项),还是我的XML定义有问题?相关XML代码如下:
<ComplicationSlot x="100" y="100" width="100" height="100" slotId="10" supportedTypes="SHORT_TEXT" isCustomizable="TRUE"> <BoundingOval x="0" y="0" width="100" height="100" /> <DefaultProviderPolicy defaultSystemProvider="WATCH_BATTERY" defaultSystemProviderType="SHORT_TEXT" /> <Complication type="SHORT_TEXT"> <PartImage x="35" y="16" width="22" height="22" pivotX="0.5" pivotY="0.5" alpha="255"> <Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]"/> </PartImage> <PartText x="18" y="39" width="56" height="22" pivotX="0.5" pivotY="0.5" alpha="255"> <Text align="CENTER" ellipsis="TRUE"> <Font family="SYNC_TO_DEVICE" size="20" weight="NORMAL" slant="NORMAL" color="#ffffffff"> <Template> %s <Parameter expression="[COMPLICATION.TEXT]"/> </Template> </Font> </Text> </PartText> <PartText x="19" y="62" width="54" height="14" pivotX="0.5" pivotY="0.5" alpha="255"> <Text align="CENTER" ellipsis="TRUE"> <Font family="SYNC_TO_DEVICE" size="12" weight="NORMAL" slant="NORMAL" color="#ffadadad"> <Template> %s <Parameter expression="[COMPLICATION.TITLE]"/> </Template> </Font> </Text> </PartText> </Complication> </ComplicationSlot>
可能的原因及解决方法
- 扩展
supportedTypes范围:手机端Watch应用对complication提供者的过滤逻辑比手表端更严格,仅指定SHORT_TEXT可能会排除部分兼容但未严格匹配单一类型的提供者。尝试添加兼容类型,比如supportedTypes="SHORT_TEXT,ICON",再重新编译测试。 - 验证
slotId唯一性:确保表盘内所有ComplicationSlot的slotId都是唯一值,重复ID会导致手机端配置界面解析异常,仅显示“Empty”选项。 - 调整默认提供者配置:当前
DefaultProviderPolicy指定了WATCH_BATTERY,部分系统版本可能因该提供者的类型匹配问题,干扰手机端的选项加载。可以暂时移除该配置,或确认WATCH_BATTERY确实支持SHORT_TEXT类型后再重新添加。 - 系统与应用版本排查:不少开发者反馈过Wear OS 3.x至4.x版本中存在手机端与手表端complication配置不同步的问题。建议将手机端Watch应用、手表系统更新至最新版本,再测试是否恢复正常。
内容的提问来源于stack exchange,提问作者AZX
相关产品推荐
相关产品推荐

