我尝试使用RandomNumberProviderService作为指南在Android Wear中编写复杂功能服务,但是当我点击复杂功能并且我只需要以编程方式更新信息时,我很难找到分离行为的方法(当手表收到DataApi更改时)。 点击复杂功能应该向掌上电脑发送一条消息,现在就可以了,但我无法只更新复杂的信息。
答案 0 :(得分:0)
检查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服装创建表盘,包括手机应用程序和可穿戴应用程序。可穿戴应用程序有各种表面,包括模拟,数字,opengl,日历,步骤,交互式等。
希望这有帮助。