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"
希望对您有所帮助。
我正在开发一系列 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"
希望对您有所帮助。