Một thiết bị đeo thường chứa nhiều nút vật lý, còn gọi là nút bấm. Thiết bị Wear OS luôn có ít nhất một nút: đó là nút nguồn. Ngoài ra, có thể không có hoặc có nhiều nút đa chức năng. Một số thiết bị cũng có nút xoay ở cạnh.
Trong ứng dụng của mình, bạn có thể gán các nút đa chức năng cho các thao tác khi ứng dụng đang ở nền trước. Ví dụ: một ứng dụng thể dục có thể bắt đầu hoặc tạm dừng bài tập thể dục bằng các nút đa chức năng:

Để biết các trường hợp sử dụng và cân nhắc phù hợp về thiết kế, hãy xem Nguyên tắc thiết kế cho Wear OS.
Tài liệu này mô tả cách truy xuất thông tin về các nút đa chức năng có sẵn trên thiết bị và cách xử lý các thao tác nhấn nút.
Siêu dữ liệu về nút
Để biết thêm thông tin về các nút trên một thiết bị, hãy sử dụng API được xác định trong thư viện AndroidX dành cho Wear Input. Thêm phần phụ thuộc sau vào tệp build.gradle
của mô-đun ứng dụng:
dependencies {
implementation "androidx.wear:wear-input:1.2.0"
}
Số nút
Để xác định số lượng nút có trên thiết bị, hãy sử dụng phương thức WearableButtons.getButtonCount()
. Phương thức này bao gồm nút nguồn, vì vậy, nếu phương thức này trả về một giá trị lớn hơn 1, thì bạn có thể dùng các nút đa chức năng. Để có chính xác số nút đa chức năng có thể chỉ định, hãy trừ đi một nút, vì nút đầu tiên luôn là nút nguồn.
Mã phím cho các thao tác nhấn nút
Mỗi nút được liên kết với một hằng số int
từ lớp KeyEvent
, như minh hoạ trong bảng sau:
Nút | KeyEvent |
---|---|
Nút đa chức năng 1 | KEYCODE_STEM_1 |
Nút đa chức năng 2 | KEYCODE_STEM_2 |
Nút đa chức năng 3 | KEYCODE_STEM_3 |
Đoạn mã ví dụ sau đây cho thấy cách lấy số nút có sẵn:
val count = WearableButtons.getButtonCount(context) if (count > 1) { Log.d(TAG, "More than one button available") } val buttonInfo = WearableButtons.getButtonInfo( activity, KeyEvent.KEYCODE_STEM_1 ) if (buttonInfo == null) { // KEYCODE_STEM_1 is unavailable Log.d(TAG, "KEYCODE_STEM_1 not available") } else { // KEYCODE_STEM_1 is present on the device Log.d(TAG, "KEYCODE_STEM_1 is present on the device") }
Xử lý thao tác nhấn nút
Ứng dụng của bạn có thể xử lý một số mã phím nút có thể xử lý:
KEYCODE_STEM_1
.KEYCODE_STEM_2
.
Ứng dụng có thể nhận được các mã phím này và chuyển đổi chúng thành các hành động cụ thể trong ứng dụng.
Để xử lý một thao tác nhấn nút, hãy triển khai phương thức onKeyDown()
.
Ví dụ: cách triển khai này phản hồi thao tác nhấn nút để kiểm soát các hành động trong một ứng dụng:
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { return if (event?.repeatCount == 0) { when (keyCode) { KeyEvent.KEYCODE_STEM_1 -> { Log.d(TAG, "KEYCODE_STEM_1 pressed") true } KeyEvent.KEYCODE_STEM_2 -> { Log.d(TAG, "KEYCODE_STEM_2 pressed") true } else -> { super.onKeyDown(keyCode, event) } } } else { super.onKeyDown(keyCode, event) } }
Xác định vị trí của nút
Thư viện AndroidX cung cấp 2 phương thức giúp mô tả vị trí của một nút:
WearableButtons.getButtonLabel()
trả về một chuỗi đã được bản địa hoá mô tả vị trí chung của nút trên thiết bị.WearableButtons.getButtonIcon()
trả về một biểu tượng đại diện cho vị trí chung của nút trên thiết bị.
Nếu các API này không phù hợp với nhu cầu của ứng dụng, bạn cũng có thể sử dụng API WearableButtons.getButtonInfo()
để lấy thông tin vị trí của nút trên màn hình và xử lý theo cách riêng. Để biết thêm thông tin về các API, hãy xem Tài liệu tham khảo về API Wear.