執行及偵錯資訊方塊

資訊方塊並非應用程式,因此會使用不同的機制部署及啟動。如果裝置已啟用開發人員選項 (模擬器預設會啟用這些功能),則 Android Studio 和 adb 都能使用支援資訊方塊開發的其他功能。

部署動態磚

如要部署資訊方塊,請按照「建構及執行應用程式」一文所述,使用 Android Studio 在實體裝置或模擬器上安裝應用程式。接著,按照一般使用者的步驟,手動將資訊方塊新增至資訊方塊輪轉介面。

在開發過程中,您可能會發現使用 Android Studio 的 Wear OS 資訊方塊執行/偵錯設定功能更輕鬆快速。這個方法會自動部署及啟用資訊方塊,不需額外手動步驟,即可立即互動。

自動建立設定

如要部署及執行圖塊,最簡單的方法是使用邊線中的「執行服務」圖示。如果沒有執行設定,系統會自動建立。詳情請參閱「Wear OS 執行/偵錯設定」。

螢幕截圖,紅色箭頭指向邊線中的「▷」
按一下空白邊中的「▷」
螢幕截圖:紅色箭頭指向執行設定下拉式選單,以及「TestTileService」設定選項,並以紅框標示
系統會自動建立「執行設定」

手動建立設定

如果自動設定失敗,或您想進一步控管結果,請參閱下列操作說明。螢幕截圖來自 Android Studio Meerkat (2024.3.1)。

  1. 選取標題列中的「⋮」(漢堡) 選項。

    螢幕截圖,紅色箭頭指向標題列中的「⋮」(「漢堡」) 選項。
  2. 選取「編輯…」。

    「Edit…」是下拉式選單中「Configuration」部分下的第一個選項。
  3. 在顯示的對話方塊中,選取「+」新增設定。

    螢幕截圖,紅色箭頭指向「+」。
  4. 選取「Wear OS 資訊方塊」做為新設定的類型。

    螢幕截圖,紅色箭頭指向「Wear OS 資訊方塊」設定選項。
  5. 輸入設定名稱,然後視需要選取模組和圖塊。

    螢幕截圖,其中有三個紅色箭頭指向對話方塊視窗的區域。
  6. 輕觸「確定」。設定會顯示在標題列中。輕觸「▷」(執行) 按鈕,系統就會部署並啟用資訊方塊。

在 Android Studio 中預覽資訊方塊

自 Android Studio Koala Feature Drop 起,您可以查看 Wear OS 應用程式資訊方塊的快照。如果資訊方塊的外觀會因條件而改變,例如根據裝置螢幕大小顯示不同內容,或體育賽事進入中場休息,這個面板就特別實用。

預覽面板中的群組名稱與預覽註解中指定的群組名稱相符
Android Studio 中的資訊方塊預覽面板。

新增依附元件

在應用程式的 build.gradle.kts 或 build.gradle 檔案中加入下列依附元件:

dependencies {
    implementation("androidx.wear.tiles:tiles-tooling-preview:1.6.2")
    debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.2")
    implementation("androidx.wear:wear-tooling-preview:1.0.0")
}

設定資訊方塊預覽

如要預覽資訊方塊在不同 Wear OS 螢幕尺寸上的外觀,請新增 @Preview 註解,並傳入 device 參數。請注意,這個 @Preview 註解來自與可組合預覽不同的套件。

@Preview(device = WearDevices.SMALL_ROUND)
@Preview(device = WearDevices.LARGE_ROUND)
fun tilePreview(context: Context) = TilePreviewData { request ->
    TilePreviewHelper.singleTimelineEntryTileBuilder(
        buildMyTileLayout(context, request.deviceConfiguration)
    ).build()
}

新增及註冊資源

如果資訊方塊使用 Android 資源,您必須在 TilePreviewData 的 onTileResourceRequest 參數中註冊這些資源,如以下程式碼片段所示:

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithResources(context: Context) = TilePreviewData(
    onTileResourceRequest = { request ->
        Resources.Builder()
            .setVersion(RESOURCES_VERSION)
            .addIdToImageMapping(
                myImageId,
                getImageById(R.drawable.animated_walk)
            )
            .build()
    },
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout(context, request.deviceConfiguration)
        ).build()
    }
)

顯示平台資料來源的特定值

如果資訊方塊使用平台資料 (例如心率、卡路里、距離和步數),資訊方塊會顯示這些資料的預設值。

如要顯示特定值,請在建立 TilePreviewData 物件時設定 platformDataValues 參數,如以下程式碼片段所示:

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithPlatformOverride(context: Context) = TilePreviewData(
    platformDataValues = PlatformDataValues.of(
        PlatformHealthSources.Keys.HEART_RATE_BPM,
        DynamicDataBuilders.DynamicDataValue.fromFloat(160f)
    ),
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayoutDynamic(context, request.deviceConfiguration)
        ).build()
    }
)

使用 ADB 操控資訊方塊

adb 可用於在開發期間,透過程式輔助方式安裝、移除及啟用資訊方塊。

在下列指令中,ComponentName 是由套件名稱和該套件中的類別組成的字串,例如 com.example.wear.tiles/com.example.wear.tiles.PreviewTileService。

add-tile

新增 COMPONENT_NAME 提供的圖塊,並傳回索引。

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation add-tile --ecn component [COMPONENT_NAME]

輸出內容範例:

Broadcast completed: result=1, data="Index=[0]"

如果輪轉介面中已有資訊方塊,系統會將其移除,並在相同位置重新插入。否則,系統會在 Index[0] 插入。此外,如果輪轉介面已達容量上限,系統會移除最後一個資訊方塊,為新資訊方塊騰出空間。

show-tile

啟用索引 TILE_INDEX 的圖塊。

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SYSUI --es operation show-tile --ei index [TILE_INDEX]

輸出內容範例:

Broadcast completed: result=1

remove-tile

移除與 COMPONENT_NAME 相關聯的輪轉介面上的所有圖塊例項。

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation remove-tile --ecn component [COMPONENT_NAME]

輸出內容範例:

result=1, data="Tile(s) removed."

傳回值

  • result=0:沒有廣播接收器回應這項指令,最可能的原因是 Wear OS 版本過舊,或偵錯程序未執行。
  • result=1:成功。
  • result>1:錯誤。