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 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 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.


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).
Chọn biểu tượng "⋮" ("bánh mì kẹp") trên thanh tiêu đề.
Chọn "Chỉnh sửa…".
Chọn "+" để thêm cấu hình trên hộp thoại xuất hiện.
Chọn "Thẻ thông tin trong Wear OS" làm loại cấu hình mới.
Nhập tên cho cấu hình rồi chọn mô-đun và thẻ thông tin phù hợp.
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.

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.