如何从表盘访问谷歌倒数计时器上的剩余时间?



我正在表盘上显示剩余时间。

我一直在寻找访问(大概)"com.google.android.deskclock"以获取计时器数据的方法,但在网上没有找到任何东西。

谢谢你的帮助。

没有官方的 API,但由于系统 Clock 应用通过复杂功能公开此值,因此您可以通过这种方式访问它。

首先将计时器复杂性指定为默认值:

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来执行任何您想做的事情。

这种方法有几个注意事项:

  • 由于这不是已发布的系统提供商之一,因此它始终有可能无法在某处的某个手表上运行 - 或者更新可能会破坏它。
  • 用户需要已向应用授予复杂功能权限。如果您的脸部已经出现其他并发症,这可能不是问题,但如果这是可接受的用户体验,则由您决定。

相关内容

  • 没有找到相关文章

最新更新