Android Wear 2 中的未读通知计数并发症

Unread notification count complication in Android Wear 2

我正在开发一系列 Android Wear 2 watch faces,显然我发现了一个我无法解决的问题。

在图像中,您可以看到来自 Google 的两个简单表盘(很抱歉,我还不能嵌入图像)。 第一个来自 Google Developer Codelabs 示例项目。

Google Developer Codelabs watch face

第二个是AW2默认安装的,叫做"Elements analog"(不过还有一个"Elements Digital",很像)。 我已经禁用了除左边的所有其他并发症。

Elements analog watch face

两个表盘都显示来自同一并发症数据提供者的信息,系统未读通知计数(在并发症助手中,select 常规 -> 未读通知计数)。

但是,如您所见,相同的信息以两种截然不同的方式显示。

我的问题是,我不明白这是怎么可能的。未读通知计数并发症的类型为 TYPE_ICON.

根据文档,ComplicationData 中与类型 TYPE_ICON 的并发症相关的唯一信息是一个图标,可通过调用 complicationData.getIcon() 检索。 而且,事实上,图标在那里,它是未读通知的实际数量的图像。圆圈中的数字图像(如您在第一个表盘中看到的那样)。 没有铃铛图标(第二个表盘),另一个变量中没有单独的未读计数值。没有。

我认为我可以避免使用 Complications Drawable 方法来绘制并发症并按照我自己的方式进行绘制,但是,正如我所说的,我对并发症的唯一了解是,当它被创建或更新时,它是 TYPE_ICON 类型。没有其他的。没有提供商名称,没有价值。只是一个数字图标。

我错过了什么?我怎样才能以类似于第二张图片中的方式绘制并发症?

谢谢。

我设法绘制了第二张图片(Elements 模拟表盘)中的未读计数复杂功能,如我所愿。

这是一个 order 的问题,其中声明了并发症支持的类型。在 Codelabs 表盘代码(上图第一张)中,这是单个复杂功能的声明顺序:

TYPE_RANGED_VALUE,
TYPE_ICON,
TYPE_SHORT_TEXT,
TYPE_SMALL_IMAGE

如您所见,TYPE_ICON 类型排在 TYPE_SHORT_TEXT 类型之前。 这改变了数据提供者(未读通知计数是系统提供者)收集复杂数据的方式。

通过按以下顺序声明并发症支持的类型:

TYPE_RANGED_VALUE,
TYPE_SHORT_TEXT,
TYPE_SMALL_IMAGE,
TYPE_ICON

并发症数据以 TYPE_SHORT_TEXT 的形式出现,根据需要带有铃铛图标和未读计数值。

我认为文档对此很不清楚。 我找到的所有内容(此处:https://developer.android.com/training/wearables/watch-faces/complications.html)是:"The types should be listed in order of preference, usually with types offering more information, such as ranged value, given higher preference"

希望对您有所帮助。