【问题标题】:Android Wear complication update behaviourAndroid Wear 复杂功能更新行为
【发布时间】:2017-05-11 10:48:10
【问题描述】:
我尝试使用RandomNumberProviderService 作为指南在基于 Android Wear 的复杂服务中编程,但是当我点击复杂功能和只需要以编程方式更新信息时(当手表收到 DataApi 更改)。
点击并发症应该会向手持设备发送一条消息,现在可以了,但我无法仅更新有关并发症的信息。
【问题讨论】:
标签:
android
wear-os
android-wear-2.0
android-wear-complication
【解决方案1】:
查看ComplicationSimpleWatchFaceService:
/*
* Called when there is updated data for a complication id.
*/
@Override
public void onComplicationDataUpdate(
int complicationId, ComplicationData complicationData) {
Log.d(TAG, "onComplicationDataUpdate() id: " + complicationId);
// Adds/updates active complication data in the array.
mActiveComplicationDataSparseArray.put(complicationId, complicationData);
invalidate();
}
根据Receiving data and rendering complications 文档:
要开始接收复杂功能数据,表盘调用setActiveComplications,在WatchFaceService.Engine class 中,带有表盘复杂功能ID 列表。表盘创建这些 ID 以唯一标识表盘上可能出现复杂功能的插槽,并将它们传递给 createProviderChooserIntent 方法,以允许用户决定哪个复杂功能应该放在哪个插槽中。
并发症数据通过 onComplicationDataUpdate(WatchFaceService.Engine)回调传递。
请查看Android WatchFace Sample,您提供的链接是此示例的一部分),这演示了如何为 android wear 创建表盘,包括一个手机应用程序和一个可穿戴应用程序。可穿戴应用有多种表盘,包括模拟、数字、opengl、日历、步数、交互式等。
希望这会有所帮助。