【问题标题】:How to add complications by default in wearOS android如何在wearOS android中默认添加并发症
【发布时间】:2019-09-18 06:56:21
【问题描述】:

Developer.android 说:

void setDefaultSystemComplicationProvider (int watchFaceComplicationId, int systemProvider, int 类型)

但对我不起作用。

【问题讨论】:

  • 你能解释一下这个对你“不起作用”的原因吗?

标签: android wear-os android-wear-2.0 watch-face-api android-wear-complication


【解决方案1】:

作为一名初级 Android 开发人员,并且缺乏可用于 Wear OS 平台的社区支持和教程,我一直在努力在默认情况下设置 Wear OS 的复杂性。通过对我的代码进行一些调整,我以某种方式设法使该方法对我有用。我想分享它可能对谁有帮助。 这是我用过的方法:

private void initializeComplications() {
    Log.d("complication", "initializeComplications()");

    mActiveComplicationDataSparseArray = new SparseArray<>(COMPLICATION_IDS.length);

    ComplicationDrawable leftComplicationDrawable =
            (ComplicationDrawable) getDrawable(R.drawable.custom_complication_styles);
    leftComplicationDrawable.setContext(getApplicationContext());

    ComplicationDrawable rightComplicationDrawable =
            (ComplicationDrawable) getDrawable(R.drawable.custom_complication_styles);
    rightComplicationDrawable.setContext(getApplicationContext());

    ComplicationDrawable topComplicationDrawable =
            (ComplicationDrawable) getDrawable(R.drawable.custom_complication_styles);
    topComplicationDrawable.setContext(getApplicationContext());

    mComplicationDrawableSparseArray = new SparseArray<>(COMPLICATION_IDS.length);
    mComplicationDrawableSparseArray.put(LEFT_COMPLICATION_ID, leftComplicationDrawable);
    mComplicationDrawableSparseArray.put(RIGHT_COMPLICATION_ID, rightComplicationDrawable);
    mComplicationDrawableSparseArray.put(TOP_COMPLICATION_ID, topComplicationDrawable);

    // Set default complication
    // This time we don't create a setting screen so we need to set it here
    setDefaultSystemComplicationProvider (
            LEFT_COMPLICATION_ID,
            SystemProviders.STEP_COUNT,
            ComplicationData.TYPE_SHORT_TEXT);

    setDefaultSystemComplicationProvider (
            RIGHT_COMPLICATION_ID,
            SystemProviders.WATCH_BATTERY,
            ComplicationData.TYPE_SHORT_TEXT);

    setDefaultSystemComplicationProvider (
            TOP_COMPLICATION_ID,
            SystemProviders.DATE,
            ComplicationData.TYPE_SHORT_TEXT);

    setActiveComplications(COMPLICATION_IDS);
}

最后我把它叫进来了:

public void onCreate(SurfaceHolder holder) {

    setWatchFaceStyle(new WatchFaceStyle.Builder(DigitalPrayerTimes.this)
            .setAcceptsTapEvents(true)
            .build());

    // TODO: Step 2, intro 3
    initializeComplications();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多