Haptisches Feedback zu Terminen hinzufügen

Einer der einfachsten Anwendungsfälle für die Haptik besteht darin, Nutzenden Feedback zu geben. Interaktionen. Zeitauswahl, Tastendruck auf einer Bildschirmtastatur und Text Auswahl sind gängige Beispiele für gute Anwendungsfälle für haptisches Feedback. Weitere Informationen wann und wie Sie die Haptik anwenden können, Haptik-Designprinzipien

Auf dieser Seite werden drei Möglichkeiten für haptisches Feedback beschrieben.

Diese Methoden verwenden Primitive, die auf Geräteebene definiert wurden, um eine hohe Qualität das auf das jeweilige Gerät zugeschnitten ist.

Bei allen Methoden für haptisches Feedback werden die Einstellungen für Touch-Feedback berücksichtigt, Standardeinstellung.

View-Komponenten für haptisches Feedback verwenden

Verwenden Sie die Methode View.performHapticFeedback, um haptisches Feedback zu generieren. Die haptische Konstanten, die vom HapticFeedbackConstants definiert werden, sind auf ihre der Anwendung nutzen, und nicht die Art des durchgeführten haptischen Effekts.

Die zugrunde liegende Implementierung kann je nach Gerät und Hardware variieren. Funktionen, aber die App muss nur die Art des Feedbacks berücksichtigen, in einem bestimmten Kontext. Wenn Sie sich auf die Funktionalität konzentrieren, Feedback zu ähnlichen Interaktionen geben. Nutzende lernen, verschiedene Bedeutungen haptische Empfindungen im Laufe der Zeit.

Voraussetzungen: Haptisches Feedback aktivieren

Solange View sichtbar ist, kann haptisches Feedback für Ereignisse verwendet werden. Einige Ereignisse, z. B. langes Drücken, haben eine Standardhaptik, die ausgelöst wird, wenn ein Listener für die Ansicht verarbeitet das Ereignis (gibt true zurück).

Ein Android-View kann haptisches Feedback deaktivieren, indem die View.hapticFeedbackEnabled-Property mit false verknüpft. Diese Property deaktivieren führt zu Standardfeedback.

Die Methode performHapticFeedback berücksichtigt auch die Systemeinstellung HAPTIC_FEEDBACK_ENABLED, über die der Nutzer sie deaktivieren kann für das gesamte System.

Im Gegensatz zu anderen haptischen APIs wird HapticFeedbackConstants mit einem View verwendet. ist die Berechtigung VIBRATE nicht erforderlich.

HapticFeedbackConstant auswählen

Wenn Sie View-Komponenten mit HapticFeedbackConstants verwenden, ist kein um die Unterstützung spezifischer Geräte zu bewerten, da für diese Konstanten ein Fallback verhalten. Der einzige Faktor ist das SDK-Level des gewünschten konstant.

Beispiel 1: Tastendruck

Das ist ein Beispiel dafür, wie du einer Berührungseingabe in View ein haptisches Feedback hinzufügen kannst mit Touch-Zuhörern. Die Effekte simulieren das Gefühl, und lasse sie dann los.

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;
  }
}

Beispiel 2: Schaltfläche „Senden“

Anwendungsfälle für haptisches Feedback gehen über die Simulation einer physischen Interaktion mit dem . Sie können auch verwendet werden, um eine abstrakte Bedeutung zu vermitteln. Beispiel: die allgemeine Erwartung an Der CONFIRM-Effekt ist ein Vibration kurz und leicht, während REJECT könnte ein und stärkeres Feedback bei Fehlern signalisieren. Dies wird in den folgenden Beispiel für eine Feedback-Schaltfläche „Senden“.

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);
  }
});

Vordefiniertes VibrationEffect verwenden, um haptisches Feedback zu generieren

Beim View-basierten Ansatz liegt der Fokus auf der Nutzerinteraktion. Es ist im gesamten System bevorzugt. Spezifische vordefinierte VibrationEffect APIs können auch für benutzerdefiniertes haptisches Feedback aufgerufen werden Effekte.

Vordefinierte Effekte sind verfügbar als VibrationEffect Konstanten und können überprüft, ob sie unterstützt wird, und den Vibrator-Dienst verwendet, wie in der folgenden Beispielen.

Informationen zur Geräteunterstützung von VibrationEffect APIs

Im Allgemeinen sollte es nicht erforderlich sein, zu prüfen, ob die jeweilige Person unterstützt wird. VibrationEffect-APIs. APIs wie Vibrator.areEffectsSupported und Vibrator.areAllEffectsSupported werden verwendet, um festzustellen, ob das Gerät eine angepasste Implementierung der Konstante. Wenn ein angepasster Effekt nicht kann deine App dennoch die Effekte wiedergeben und eine von der Plattform Fallback-Implementierung.

Weitere Informationen finden Sie unter Vordefinierte VibrationEffect

Voraussetzungen: Vibrator und Berechtigung VIBRATE laden

Die meisten Vibrationen können mit dem Dienst Vibrator wiedergegeben werden, der geladen werden kann wie folgt:

Kotlin

import android.os.Vibrator

val vibrator = context.getSystemService(Vibrator::class.java)

Java

import android.os.Vibrator;

Vibrator vibrator = context.getSystemService(Vibrator.class);

Die App muss über die Berechtigung VIBRATE der Reihe nach , um das Gerät mit diesem Dienst zu vibrieren. Die Berechtigung kann dem Manifestdatei der Anwendung:

<uses-permission android:name="android.permission.VIBRATE"/>

Vordefinierten VibrationEffect wiedergeben

Vordefinierte Effekte können mit VibrationEffect.createPredefined, und dann mit einer der vibrate-Methoden auf Vibrator wiedergegeben.

In diesem Beispiel wird ein Klickeffekt wiedergegeben.

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));

Erweiterte Kompositionen mit Primitiven verwenden

Die VibrationEffect.Composition API bietet zusätzliche Möglichkeiten für haptisches Feedback. Im Gegensatz zu den Effekten haben diese Primitiven Fallbacks auf Systemebene. Daher ist es wichtig, die Primitiven und anderen Funktionen, die das Gerät unterstützt.

Die Verwendung dieser APIs wird ausführlicher in Benutzerdefinierte haptische Effekte erstellen.