我正在学习 android 开发并尝试使用 kotlin 开发一个简单的 android 表盘。现在我陷入了并发症。我找到了一种如何使其与默认系统数据一起工作的方法,例如如何显示计步器或当前日期:
val leftComplication = ComplicationSlot.createRoundRectComplicationSlotBuilder(
id = ComplicationConfig.Left.id,
canvasComplicationFactory = defaultCanvasComplicationFactory,
supportedTypes = ComplicationConfig.Left.supportedTypes,
defaultDataSourcePolicy = DefaultComplicationDataSourcePolicy( SystemDataSources.DATA_SOURCE_DAY_OF_WEEK ),
bounds = ComplicationSlotBounds( RectF(
ComplicationBounds.LEFT_COMPLICATION_BOUNDS.left,
ComplicationBounds.LEFT_COMPLICATION_BOUNDS.top,
ComplicationBounds.LEFT_COMPLICATION_BOUNDS.right,
ComplicationBounds.LEFT_COMPLICATION_BOUNDS.bottom
)
) ).setDefaultDataSourceType(ComplicationType.SHORT_TEXT)
.build()
(完整源代码可通过https://github.com/SI7-Agent/AndroidXComplicatedDigitalNeon获得)
所以这是有效的,但它正在返回一个复杂的地方生成的complicationData。那么问题来了:我可以使用系统数据生成的这个复杂数据并根据自己的喜好进行修改:例如,如果支持就更改图标而不修改其他数据?
我知道创建自定义广播接收器和 ComplicationDataSourceService。但是在这种情况下,例如,如果我想使用计步器,我必须提供我需要显示的所有数据,包括传感器的值。
我很感激任何帮助。谢谢