Perangkat wearable biasanya memiliki beberapa tombol fisik, yang juga dikenal sebagai stem. Perangkat Wear OS selalu memiliki minimal satu tombol: tombol daya. Selain itu, nol atau beberapa tombol multifungsi mungkin ada. Beberapa perangkat juga menyediakan tombol putar samping fisik.
Di aplikasi, Anda dapat menetapkan tombol multifungsi ke tindakan saat aplikasi berada di latar depan. Misalnya, aplikasi kebugaran dapat memulai atau menjeda olahraga menggunakan tombol multifungsi:

Untuk kasus penggunaan dan pertimbangan desain yang sesuai, lihat Prinsip desain Wear OS.
Dokumen ini menjelaskan cara mengambil informasi tentang tombol multifungsi yang tersedia di perangkat dan cara memproses penekanan tombol.
Metadata tombol
Untuk mendapatkan informasi tambahan tentang tombol di perangkat, gunakan API yang ditentukan dalam
library AndroidX Wear Input. Tambahkan dependensi berikut di file build.gradle
modul aplikasi Anda:
dependencies {
implementation "androidx.wear:wear-input:1.2.0"
}
Jumlah tombol
Tentukan jumlah tombol yang tersedia di perangkat, gunakan metode
WearableButtons.getButtonCount()
. Metode ini menyertakan tombol daya, jadi jika metode ini menampilkan nilai yang lebih besar dari satu, akan ada tombol multifungsi yang tersedia untuk digunakan. Untuk mendapatkan
jumlah tombol multifungsi yang dapat ditetapkan secara akurat, kurangi satu dari
jumlah tersebut, karena tombol pertama selalu berupa tombol daya.
Kode tombol untuk penekanan tombol
Setiap tombol dipetakan ke konstanta int
dari class
KeyEvent
, seperti yang ditunjukkan dalam tabel berikut:
Tombol | KeyEvent |
---|---|
Tombol multifungsi 1 | KEYCODE_STEM_1 |
Tombol multifungsi 2 | KEYCODE_STEM_2 |
Tombol multifungsi 3 | KEYCODE_STEM_3 |
Kode contoh berikut menunjukkan cara mendapatkan jumlah tombol yang tersedia:
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") }
Menangani penekanan tombol
Ada sejumlah kemungkinan kode tombol yang dapat ditangani aplikasi Anda:
KEYCODE_STEM_1
.KEYCODE_STEM_2
.
Aplikasi Anda dapat menerima kode tombol ini dan mengonversinya menjadi tindakan spesifik dalam aplikasi.
Untuk menangani penekanan tombol, implementasikan metode
onKeyDown()
.
Misalnya, implementasi ini merespons penekanan tombol untuk mengontrol tindakan dalam aplikasi:
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) } }
Menentukan posisi tombol
Library AndroidX menyediakan dua metode yang menjelaskan lokasi tombol:
WearableButtons.getButtonLabel()
menampilkan string yang dilokalkan yang menjelaskan penempatan tombol secara umum di perangkat.WearableButtons.getButtonIcon()
menampilkan ikon yang merepresentasikan penempatan umum tombol pada perangkat.
Jika API ini tidak sesuai dengan kebutuhan aplikasi, Anda juga dapat menggunakan
WearableButtons.getButtonInfo()
API untuk mendapatkan lokasi tombol di
layar dan menanganinya dengan cara yang lebih disesuaikan. Untuk mengetahui informasi selengkapnya tentang API, lihat Referensi API Wear.