我正在编织表盘,想在计时器上显示剩余时间。
我一直在寻找访问(大概)计时器数据“ com.google.android.deskclock”的方法,但是在网上找不到任何内容。
谢谢您的帮助。
答案 0 :(得分:0)
对此没有官方API,但是由于系统Clock应用程序通过复杂性公开了此值,因此您可以通过这种方式进行访问。
以specifying the timer complication as a default开始:
setDefaultComplicationProvider(myComplicationId,
new ComponentName("com.google.android.deskclock",
"com.google.android.deskclock.complications.TimerProviderService"),
ComplicationData.TYPE_SHORT_TEXT);
如果您的表盘已经支持复杂功能,则可以将该提供程序添加到该逻辑中。否则-如果您想对计时器值做其他事情-您需要从ComplicationData
中提取它。因此,在您的WatchFaceService.Engine
子类中:
@Override
public void onComplicationDataUpdate(int complicationId, ComplicationData complicationData) {
super.onComplicationDataUpdate(watchFaceComplicationId, data);
if (complicationId == myComplicationId) {
// This is the timer complication
CharSequence timerValue = complicationData.getShortText()
.getText(getBaseContext(), System.currentTimeMillis());
}
}
这使您当前的timerValue
可以做您想做的任何事情。
此方法的一些注意事项: