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

问题描述 投票:0回答:1

我正在建造一个表盘,想要在计时器上显示剩余时间。

我一直在寻找方法来访问(推测)“com.google.android.deskclock”的计时器数据,但是没有在网上找到任何东西。

谢谢您的帮助。

timer wear-os
1个回答
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做你想做的任何事情。

这种方法有几点需要注意:

  • 因为这不是published system providers之一,所以它总是有可能在某个地方的某些手表上不起作用 - 或者更新可能会破坏它。
  • 用户需要将complication permission授予您的应用。如果你的脸已经出现其他​​并发症,这可能不是问题,但如果这是一个可接受的用户体验,那么这是你的呼吁。
© www.soinside.com 2019 - 2024. All rights reserved.