我正在建造一个表盘,想要在计时器上显示剩余时间。
我一直在寻找方法来访问(推测)“com.google.android.deskclock”的计时器数据,但是没有在网上找到任何东西。
谢谢您的帮助。
没有官方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
做你想做的任何事情。
这种方法有几点需要注意: