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

Thẻ thông tin không phải là ứng dụng, vì vậy, chúng đượ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 Tùy 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 ô sẽ có sẵn để sử dụng trong cả Android Studio và adb.

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 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 việc sử dụng tính năng "Wear OS Tile" Run/Debug Configuration (Cấu hình chạy/gỡ lỗi "Thẻ thông tin Wear OS") của Android Studio sẽ 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 một thẻ thông tin là sử dụng biểu tượng "run service" (chạy dịch vụ) trong máng. Thao tác này sẽ tự động tạo một cấu hình chạy nếu chưa có. 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 đỏ chỉ vào biểu tượng "▷" trong lề
Nhấp vào biểu tượng "▷" trong lề
Ả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ủa cấu hình chạy và tuỳ chọn cấu hình "TestTileService" được khoanh đỏ
"Cấu hình chạy" được tạo tự động

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

Nếu cấu hình tự động không hoạt động hoặc bạn muốn có nhiều quyền kiểm soát hơn đối với 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 "⋮" ("hamburger") trên thanh tiêu đề.

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

    "Edit…" (Chỉnh sửa…) là lựa chọn đầu tiên trong mục Configuration (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 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 cập nhật tính năng Android Studio Koala, bạn có thể xem ảnh chụp nhanh các thẻ thông tin của ứ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 đ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 sự kiện thể thao đến giờ nghỉ giải lao.

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.6.2")
    debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.2")
    implementation("androidx.wear:wear-tooling-preview:1.0.0")
}

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

Để 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, hãy thêm chú thích @Preview và truyền 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 dùng cho bản xem trước composable.

@Preview(device = WearDevices.SMALL_ROUND)
@Preview(device = WearDevices.LARGE_ROUND)
fun tilePreview(context: Context) = TilePreviewData { request ->
    TilePreviewHelper.singleTimelineEntryTileBuilder(
        buildMyTileLayout(context, request.deviceConfiguration)
    ).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:

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

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

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

Để hiện 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:

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

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 một ô 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ẻ đó sẽ bị xoá và được chèn lại vào cùng một vị trí. Nếu không, giá trị sẽ được chèn tại Index[0]. Ngoài ra, nếu băng chuyền đã đạt đến dung lượng tối đa, thì ô cuối cùng sẽ bị xoá để nhường chỗ cho ô mới.

show-tile

Kích hoạt ô 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ể ô trên băng chuyền 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ó bộ nhận tín hiệu truyền tin nào phản hồi lệnh này, rất có thể là do phiên bản Wear OS quá cũ hoặc quy trình gỡ lỗi không chạy.
  • result=1: Thành công.
  • result>1: Lỗi.