Uno dei casi d'uso più basilari per la tecnologia aptica è quello di fornire feedback all'utente e interazioni. Selettori dell'ora, la pressione del tasto su una tastiera virtuale e il testo sono esempi comuni di buoni casi d'uso per il feedback aptico. Per ulteriori informazioni informazioni su quando e come applicare la tecnologia aptica, leggi Principi di progettazione con tecnologia aptica.
In questa pagina vengono descritti tre modi per fornire feedback aptico.
- Utilizza un
View
(consigliato). Questo approccio è orientato all'azione, offre la più ampia assistenza possibile e non richiede l'autorizzazioneVIBRATE
. - Utilizza un
VibrationEffect
predefinito. Questo approccio offre maggiore flessibilità, ma con alcuni compromessi. - Utilizzare composizioni avanzate con le primitive. Questo è più recente e ancora più flessibile, ma richiede un dispositivo specifico assistenza in tempo reale.
Questi metodi utilizzano le primitive definite a livello di dispositivo per fornire alta qualità e feedback personalizzati in base al dispositivo.
Tutti i metodi di feedback aptico rispettano le impostazioni del feedback al tocco dell'utente: predefinito.
Utilizza i componenti View
per generare feedback aptico
Utilizza il metodo View.performHapticFeedback
per generare feedback aptico. La
le costanti aptiche definite dal parametro HapticFeedbackConstants
si concentrano sulle relative
la funzionalità di sicurezza in un'applicazione, non il tipo di effetto aptico eseguito.
L'implementazione di base potrebbe variare a seconda del dispositivo e dell'hardware ma l'app deve solo considerare il tipo di feedback da fornire in un determinato contesto. Concentrandoti sulla funzionalità, puoi attivare la tecnologia aptica feedback per interazioni simili. Gli utenti imparano ad associare significati diversi a diverse sensazioni aptiche nel tempo.
Prerequisiti: attiva il feedback aptico
Finché l'elemento View
è visibile, è possibile utilizzare il feedback aptico per i suoi eventi.
Alcuni eventi, come la pressione prolungata, hanno la tecnologia aptica predefinita che viene attivata se un
listener nella vista gestisce l'evento (restituisce true
).
Un View
Android può disattivare il feedback aptico impostando il
View.hapticFeedbackEnabled
a false
. Disattivazione di questa proprietà
genera un feedback predefinito.
Il metodo performHapticFeedback
rispetta anche l'impostazione di sistema
HAPTIC_FEEDBACK_ENABLED
, che consente all'utente di disattivarli potenzialmente
per l'intero sistema.
A differenza delle altre API aptica, l'uso di HapticFeedbackConstants
con un View
non richiede l'autorizzazione VIBRATE
.
Scegli un HapticFeedbackConstant
Quando utilizzi i componenti View
con HapticFeedbackConstants
, non è necessario
per valutare il supporto specifico del dispositivo, in quanto queste costanti hanno
comportamento dell'utente, se necessario. L'unica considerazione è il livello di SDK
costante.
Esempio 1: pressione di un tasto
Questo è un esempio di come aggiungere un feedback aptico a un input tocco in View
tramite listener tattili. Gli effetti simulano la sensazione di premere
e rilasciarlo.
Kotlin
class HapticTouchListener : View.OnTouchListener { override fun onTouch(View view, MotionEvent event) : Boolean { when (event.actionMasked) { MotionEvent.ACTION_DOWN -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY) MotionEvent.ACTION_UP -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE) } return true } }
Java
class HapticTouchListener implements View.OnTouchListener { @Override public boolean onTouch(View view, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); break; case MotionEvent.ACTION_UP: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE); break; } return true; } }
Esempio 2: pulsante Invia
I casi d'uso del feedback aptico vanno oltre la simulazione di un'interazione fisica con
dispositivo. Potrebbero essere usati anche per trasmettere un significato astratto. Ad esempio:
l'aspettativa generale
L'effetto CONFIRM
è un
una vibrazione breve e leggera durante
REJECT
potrebbe essere un
un feedback più forte per segnalare i guasti. come illustrato di seguito
per un feedback sul pulsante Invia.
Kotlin
submitButton.setOnClickListener { view -> val successful = performSubmit() if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM) } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT) } }
Java
submitButton.setOnClickListener(view -> { boolean successful = performSubmit(); if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM); } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT); } });
Utilizza un valore VibrationEffect
predefinito per generare feedback aptico
L'utilizzo dell'approccio basato su View
si concentra sull'interazione dell'utente. È
per la coerenza in tutto il sistema. Tuttavia, determinati valori predefiniti
Le API di VibrationEffect
possono essere richiamate anche per un feedback aptico personalizzato
e gli effetti sonori.
Gli effetti predefiniti sono disponibili come VibrationEffect
costante e può essere
ha cercato assistenza e ha usato il servizio Vibrator
come mostrato
i seguenti esempi.
Comprendi il supporto dei dispositivi delle API di VibrationEffect
Nell'utilizzo di base, non dovrebbe essere necessario verificare il supporto dei singoli utenti
VibrationEffect
API. Le API come Vibrator.areEffectsSupported
e Vibrator.areAllEffectsSupported
vengono utilizzati per determinare se il dispositivo ha
un'implementazione personalizzata della costante. Se un effetto personalizzato non
presente, la tua app può comunque riprodurre gli effetti e usare un modello
un'implementazione di riserva.
Per maggiori dettagli, consulta la sezione Predefinito
VibrationEffect
.
Prerequisiti: carica l'autorizzazione Vibrator e VIBRATE
La maggior parte delle vibrazioni può essere riprodotta con il servizio Vibrator
, che è possibile caricare
come segue:
Kotlin
import android.os.Vibrator val vibrator = context.getSystemService(Vibrator::class.java)
Java
import android.os.Vibrator; Vibrator vibrator = context.getSystemService(Vibrator.class);
L'app deve avere
Autorizzazione VIBRATE
in ordine
per far vibrare il dispositivo usando questo servizio. L'autorizzazione può essere aggiunta al
file manifest dell'applicazione:
<uses-permission android:name="android.permission.VIBRATE"/>
Riproduci VibrationEffect
predefinito
Gli effetti predefiniti possono essere preparati utilizzando VibrationEffect.createPredefined
,
poi giocato con uno dei vibrate
metodi su Vibrator
.
Questo esempio riproduce un effetto Clic.
Kotlin
val vibrator = context.getSystemService(Vibrator::class.java) ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
Java
Vibrator vibrator = context.getSystemService(Vibrator.class); ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
Utilizzare composizioni avanzate con i primitivi
L'API VibrationEffect.Composition
offre ulteriori possibilità per
con feedback aptico. Tuttavia, a differenza degli effetti, queste primitive non hanno
a livello di sistema, il che significa che occorre prestare particolare attenzione
le primitive e altre funzionalità supportate dal dispositivo.
L'utilizzo di queste API è discusso più in dettaglio nella Creazione di effetti aptici personalizzati.