Chạy và gỡ lỗi thẻ thông tin

Thẻ thông tin không phải là ứng dụng, do đó, các thẻ thông tin được triển khai và khởi chạy bằng các cơ chế khác nhau. Khi một thiết bị bật tuỳ chọn cho nhà phát triển (trình mô phỏng bật các tính năng này theo mặc định), các tính năng bổ sung hỗ trợ phát triển thẻ thông tin sẽ có sẵn để sử dụng trong cả Android Studioadb.

Triển khai thẻ thông tin

Để triển khai thẻ thông tin, bạn có thể cài đặt ứng dụng trên một thiết bị thực hoặc trình mô phỏng bằng Android Studio, như mô tả trong phần Tạo và chạy ứng dụng. Sau đó, hãy làm theo các bước tương tự như người dùng thông thường để thêm thẻ thông tin vào băng chuyền thẻ thông tin theo cách thủ công.

Trong quá trình phát triển, bạn có thể thấy tính năng "Thẻ thông tin Wear OS" Chạy/Gỡ lỗi cấu hình của Android Studio dễ dàng và nhanh chóng hơn. Phương thức này tự động triển khai và kích hoạt thẻ thông tin, cho phép tương tác ngay lập tức mà không cần thêm các bước thủ công.

Tự động tạo cấu hình

Cách dễ nhất để triển khai và chạy thẻ thông tin là sử dụng biểu tượng "chạy dịch vụ" trong định hướng. Thao tác này sẽ tự động tạo một cấu hình chạy nếu cấu hình đó chưa tồn tại. Hãy xem phần Cấu hình chạy/gỡ lỗi trên Wear OS để biết thêm thông tin.

Ảnh chụp màn hình có mũi tên màu đỏ trỏ đến "▷" trong rãnh
Nhấp vào "▷" trong rãnh
Ảnh chụp màn hình cho thấy mũi tên màu đỏ trỏ đến trình đơn thả xuống cấu hình chạy và tuỳ chọn cấu hình "TestTileService" được viền màu đỏ
"Cấu hình chạy" sẽ được tạo tự động

Tạo cấu hình theo cách thủ công

Nếu tính năng tự động định cấu hình không hoạt động hoặc bạn muốn kiểm soát nhiều hơn kết quả, hãy xem hướng dẫn sau. Ảnh chụp màn hình là của Android Studio Meerkat (2024.3.1).

  1. Chọn biểu tượng "⋮" ("bánh mì kẹp") trên thanh tiêu đề.

    Ảnh chụp màn hình có mũi tên màu đỏ chỉ vào tuỳ chọn "⋮" ("bánh hamburger") trên thanh tiêu đề.
  2. Chọn "Chỉnh sửa…".

    "Chỉnh sửa…" là tuỳ chọn đầu tiên trong phần Cấu hình của danh sách thả xuống.
  3. Chọn "+" để thêm cấu hình trên hộp thoại xuất hiện.

    Ảnh chụp màn hình có mũi tên màu đỏ chỉ vào dấu "+".
  4. Chọn "Thẻ thông tin trong Wear OS" làm loại cấu hình mới.

    Ảnh chụp màn hình có mũi tên màu đỏ trỏ đến tuỳ chọn cấu hình "Thẻ thông tin trong Wear OS".
  5. Nhập tên cho cấu hình rồi chọn mô-đun và thẻ thông tin phù hợp.

    Ảnh chụp màn hình có ba mũi tên màu đỏ chỉ vào các khu vực của cửa sổ hộp thoại.
  6. Nhấn vào "OK". Cấu hình của bạn sẽ xuất hiện trong thanh tiêu đề. Nhấn vào nút "▷" ("chạy") để triển khai và kích hoạt thẻ thông tin.

Xem trước thẻ thông tin trong Android Studio

Kể từ Bản phát hành tính năng Android Studio Koala, bạn có thể xem ảnh chụp nhanh của thẻ thông tin trong ứng dụng Wear OS. Bảng điều khiển này đặc biệt hữu ích nếu giao diện của thẻ thông tin thay đổi theo các điều kiện, chẳng hạn như nội dung khác nhau tuỳ thuộc vào kích thước màn hình của thiết bị hoặc một sự kiện thể thao đang diễn ra trong hiệp hai.

Tên nhóm trong bảng xem trước khớp với tên nhóm được cung cấp trong chú thích xem trước
Bảng xem trước Thẻ thông tin trong Android Studio.

Thêm phần phụ thuộc

Đưa các phần phụ thuộc sau vào tệp build.gradle.kts hoặc build.gradle của ứng dụng:

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

Định cấu hình bản xem trước ô

Để xem bản xem trước giao diện của thẻ thông tin trên các kích thước màn hình Wear OS khác nhau, hãy thêm chú thích @Preview và truyền vào tham số device. Xin lưu ý rằng chú thích @Preview này thuộc một gói khác với gói bạn sử dụng cho bản xem trước thành phần kết hợp.

import androidx.wear.tiles.tooling.preview.Preview

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

Thêm và đăng ký tài nguyên

Nếu thẻ thông tin của bạn sử dụng tài nguyên Android, bạn sẽ cần đăng ký các tài nguyên đó trong tham số onTileResourceRequest của TilePreviewData, như trong đoạn mã sau:

import androidx.wear.tiles.tooling.preview.Preview

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

fun getImageById(
    @DrawableRes id: Int,
): ImageResource =
    ImageResource.Builder()
        .setAndroidResourceByResId(
            AndroidImageResourceByResId.Builder()
                .setResourceId(id)
                .build(),
        )
        .build()

Hiển thị các giá trị cụ thể từ nguồn dữ liệu của nền tảng

Nếu thẻ thông tin của bạn sử dụng dữ liệu nền tảng (chẳng hạn như nhịp tim, lượng calo, khoảng cách và số bước), thì thẻ thông tin sẽ hiển thị các giá trị mặc định cho dữ liệu đó.

Để hiển thị một giá trị cụ thể, hãy đặt tham số platformDataValues khi tạo đối tượng TilePreviewData, như trong đoạn mã sau:

import androidx.wear.tiles.tooling.preview.Preview

@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(
            buildMyTileLayout()
        ).build()
    }
)

Thao tác với thẻ thông tin bằng adb

Bạn có thể dùng adb để cài đặt, xoá và kích hoạt thẻ thông tin theo phương thức lập trình trong quá trình phát triển.

Trong các lệnh sau, ComponentName là một chuỗi bao gồm tên gói và một lớp bên trong gói đó, ví dụ: com.example.wear.tiles/com.example.wear.tiles.PreviewTileService.

add-tile

Thêm thẻ thông tin do COMPONENT_NAME cung cấp và trả về chỉ mục.

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

Kết quả điểm dữ liệu:

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

Nếu một thẻ thông tin đã tồn tại trong băng chuyền, thì thẻ thông tin đó sẽ bị xoá và được chèn lại ở cùng một vị trí. Nếu không, phần tử này sẽ được chèn vào Index[0]. Ngoài ra, nếu băng chuyền đã ở mức tối đa, thẻ thông tin cuối cùng sẽ bị xoá để tạo chỗ cho thẻ thông tin mới.

show-tile

Kích hoạt thẻ thông tin tại chỉ mục TILE_INDEX.

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

Kết quả điểm dữ liệu:

Broadcast completed: result=1

remove-tile

Xoá tất cả các thực thể thẻ thông tin trên băng chuyền được liên kết với COMPONENT_NAME.

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

Kết quả điểm dữ liệu:

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

Giá trị trả về

  • result=0: Không có broadcast receiver nào phản hồi lệnh này, nhiều khả năng là do phiên bản Wear OS quá cũ hoặc quá trình gỡ lỗi không chạy.
  • result=1: Thành công.
  • result>1: Lỗi.