Un dispositivo indossabile in genere contiene più pulsanti fisici, noti anche come steli. I dispositivi Wear OS hanno sempre almeno un tasto: il tasto di accensione. Oltre a questi, potrebbero essere presenti zero o più tasti multifunzione. Alcuni dispositivi forniscono anche un pulsante laterale rotante fisico.
Nella tua app, puoi assegnare i pulsanti multifunzione alle azioni da eseguire quando l'app è in primo piano. Ad esempio, un'app per l'attività fisica potrebbe avviare o mettere in pausa un allenamento utilizzando i tasti multifunzione:

Per casi d'uso e considerazioni di progettazione adatti, consulta i principi di progettazione di Wear OS.
Questo documento descrive come recuperare informazioni sui pulsanti multifunzione disponibili su un dispositivo e come elaborare le pressioni dei pulsanti.
Metadati del pulsante
Per ottenere ulteriori informazioni sui pulsanti di un dispositivo, utilizza l'API definita nella libreria AndroidX Wear Input. Aggiungi la seguente dipendenza nel file build.gradle
del modulo dell'app:
dependencies {
implementation "androidx.wear:wear-input:1.2.0"
}
Numero di pulsanti
Determina il numero di pulsanti disponibili sul dispositivo utilizzando il metodo
WearableButtons.getButtonCount()
. Questo metodo include il pulsante di accensione, quindi se il metodo restituisce un valore
maggiore di uno, sono disponibili pulsanti multifunzione da utilizzare. Per ottenere
un conteggio preciso dei tasti multifunzione assegnabili, sottrai uno dal
conteggio, poiché il primo tasto è sempre il tasto di accensione.
Codici tasto per la pressione dei pulsanti
Ogni pulsante è mappato a una costante int
della classe
KeyEvent
, come mostrato nella tabella seguente:
Pulsante | KeyEvent |
---|---|
Pulsante multifunzione 1 | KEYCODE_STEM_1 |
Pulsante multifunzione 2 | KEYCODE_STEM_2 |
Pulsante multifunzione 3 | KEYCODE_STEM_3 |
Il seguente esempio di codice mostra come ottenere il conteggio dei pulsanti disponibili:
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") }
Gestire le pressioni dei pulsanti
Esistono diversi codici chiave dei pulsanti che la tua app può gestire:
KEYCODE_STEM_1
.KEYCODE_STEM_2
.
La tua app può ricevere questi codici chiave e convertirli in azioni in-app specifiche.
Per gestire la pressione di un pulsante, implementa il metodo
onKeyDown()
.
Ad esempio, questa implementazione risponde alla pressione dei pulsanti per controllare le azioni in un'app:
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) } }
Determinare le posizioni dei pulsanti
La libreria AndroidX fornisce due metodi che descrivono la posizione di un pulsante:
WearableButtons.getButtonLabel()
restituisce una stringa localizzata che descrive il posizionamento generale del pulsante sul dispositivo.WearableButtons.getButtonIcon()
restituisce un'icona che rappresenta il posizionamento generale del pulsante sul dispositivo.
Se queste API non soddisfano le esigenze della tua app, puoi anche utilizzare l'API WearableButtons.getButtonInfo()
per ottenere la posizione del pulsante sullo schermo e gestirlo in modo più personalizzato. Per ulteriori informazioni sulle API,
consulta il riferimento API Wear.