Selain tombol daya (sisi), Wear OS by Google juga mendukung tombol fisik tambahan yang dikenal sebagai tombol multifungsi (MF). Wearable Support Library menyediakan API untuk menentukan informasi tentang tombol MF yang tersedia di suatu perangkat.

Tutorial ini fokus mengenai cara Anda dapat mengambil informasi tentang tombol MF yang tersedia di perangkat dan memproses objek KeyEvent
.
Lihat referensi terkait berikut:
Menangani peristiwa penting
Jika perlu menangani penekanan tombol multifungsi, aplikasi Anda dapat melakukannya melalui kode peristiwa penekanan tombol standar dalam framework Android. Kode tombol biasanya terkait one-to-one dengan setiap tombol fisik pada perangkat.
Kumpulan kode tombol yang tersedia dan dapat ditangani oleh aplikasi Anda adalah:
KEYCODE_STEM_1
, KEYCODE_STEM_2
, KEYCODE_STEM_3
. Aplikasi dapat menerima kode tombol ini dan mengubahnya menjadi tindakan spesifik dalam aplikasi.
Untuk menangani penekanan tombol, implementasikan metode onKeyDown()
.
Contohnya, implementasi ini merespons beberapa penekanan tombol untuk mengontrol tindakan dalam aplikasi:
Kotlin
// Activity override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return if (event.repeatCount == 0) { when (keyCode) { KeyEvent.KEYCODE_STEM_1 -> { // Do stuff true } KeyEvent.KEYCODE_STEM_2 -> { // Do stuff true } KeyEvent.KEYCODE_STEM_3 -> { // Do stuff true } else -> { super.onKeyDown(keyCode, event) } } } else { super.onKeyDown(keyCode, event) } }
Java
@Override // Activity public boolean onKeyDown(int keyCode, KeyEvent event){ if (event.getRepeatCount() == 0) { if (keyCode == KeyEvent.KEYCODE_STEM_1) { // Do stuff return true; } else if (keyCode == KeyEvent.KEYCODE_STEM_2) { // Do stuff return true; } else if (keyCode == KeyEvent.KEYCODE_STEM_3) { // Do stuff return true; } } return super.onKeyDown(keyCode, event); }
Mencari tombol yang tersedia
Untuk mengetahui tombol mana yang tersedia untuk digunakan, Anda dapat menggunakan tombol
WearableButtons.getButtonInfo()
dan metode
WearableButtons.getButtonCount()
yang tersedia di Support Library Wearable. Cara mudah untuk menemukan adanya tombol sekunder yang tersedia adalah dengan memeriksa nilai hasil dari WearableButtons.getButtonCount()
.
Jika lebih besar dari 1, artinya tersedia tombol multifungsi dan dapat digunakan.
Kode tombol untuk penekanan tombol
Setiap tombol dipetakan ke konstanta int
dari class KeyEvent
, seperti yang ditunjukkan pada tabel berikut:
Tombol | KeyEvent |
---|---|
Tombol MF 1 | KEYCODE_STEM_1 |
Tombol MF 2 | KEYCODE_STEM_2 |
Tombol MF 3 | KEYCODE_STEM_3 |
- Jika perangkat hanya memiliki satu tombol MF, tombol akan selalu
dipetakan ke
KEYCODE_STEM_1
. - Jika perangkat memiliki dua tombol MF, tombol akan selalu dipetakan ke
KEYCODE_STEM_1
danKEYCODE_STEM_2
. - Jika perangkat memiliki tiga tombol MF, tombol akan selalu dipetakan ke
KEYCODE_STEM_1
,KEYCODE_STEM_2
, danKEYCODE_STEM_3
.
Kode contoh berikut menunjukkan cara untuk mendapatkan jumlah tombol yang tersedia:
Kotlin
val count = WearableButtons.getButtonCount(context) if (count > 1) { // There are multi-function buttons available } val buttonInfo = WearableButtons.getButtonInfo(activity, KeyEvent.KEYCODE_STEM_1) if (buttonInfo == null) { // KEYCODE_STEM_1 is unavailable } else { // KEYCODE_STEM_1 is present on the device }
Java
int count = WearableButtons.getButtonCount(context); if (count > 1) { // There are multi-function buttons available } WearableButtons.ButtonInfo buttonInfo = WearableButtons.getButtonInfo(activity, KeyEvent.KEYCODE_STEM_1); if (buttonInfo == null) { // KEYCODE_STEM_1 is unavailable } else { // KEYCODE_STEM_1 is present on the device }
Menentukan posisi tombol
Wearable Support Library menyediakan dua API yang mendeskripsikan lokasi tombol:
-
WearableButtons.getButtonLabel()
: menampilkan string yang dilokalkan yang mendeskripsikan penempatan tombol secara umum di perangkat. -
WearableButtons.getButtonIcon()
: menampilkan ikon yang merepresentasikan penempatan umum tombol pada perangkat.
Catatan: Kami merekomendasikan untuk tidak menggunakan deskriptor tekstual saat mendeskripsikan tombol dan fungsinya, tetapi gunakan indikator visual. Namun, mungkin ada beberapa situasi ketika menjelaskan tombol akan terasa lebih masuk akal.
Metode di atas didesain untuk deskripsi sederhana. 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 informasi selengkapnya tentang API, lihat Referensi API Wear.