Perangkat wearable biasanya memiliki beberapa tombol fisik, yang juga dikenal sebagai _stems_. Perangkat Wear OS selalu memiliki minimal satu tombol: tombol daya. Selain itu, nol atau beberapa tombol multifungsi mungkin ada.
Di aplikasi, Anda dapat menetapkan tombol multifungsi ke tindakan. Misalnya, aplikasi kebugaran dapat memulai atau menjeda olahraga menggunakan tombol multifungsi:
![](https://developer.android.com/static/wear/images/multi_function_buttons.png?authuser=9&hl=id)
Catatan: Wear OS 3.0 mencadangkan dua tombol untuk OS, sedangkan Wear OS 2.0 hanya mencadangkan satu tombol. Tindakan ini akan mengurangi jumlah tombol yang dapat Anda tetapkan untuk tindakan.
Untuk kasus penggunaan dan pertimbangan desain yang sesuai, tinjau Prinsip desain Wear OS.
Panduan 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.0.0" }
Jumlah tombol
Untuk mengetahui 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 hitungan yang akurat dari semua tombol multifungsi yang dapat ditetapkan, 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 pada 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 untuk mendapatkan jumlah tombol yang tersedia:
Kotlin
val count = WearableButtons.getButtonCount(context) if (count > 1) { // There are multifunction 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 multifunction 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 }
Menangani penekanan tombol
Ada sejumlah kemungkinan kode tombol yang dapat ditangani aplikasi Anda:
-
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()
.
Misalnya, implementasi ini merespons 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); }
Menentukan posisi tombol
Library AndroidX menyediakan dua metode yang menjelaskan lokasi tombol:
-
WearableButtons.getButtonLabel()
menampilkan string yang dilokalkan dan mendeskripsikan penempatan tombol secara umum di perangkat. -
WearableButtons.getButtonIcon()
menampilkan ikon yang merepresentasikan penempatan umum tombol pada perangkat.
Catatan: Sebaiknya hindari penggunaan deskriptor tekstual saat mendeskripsikan tombol dan fungsinya. Gunakan indikator visual sebagai gantinya. Namun, mungkin ada beberapa situasi ketika menjelaskan tombol akan terasa lebih masuk akal.
Metode sebelumnya 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 mengetahui informasi
selengkapnya tentang API, lihat
Referensi API Wear.