Auf dieser Seite werden empfohlene Zuordnungen zwischen öffentlichen HAL-Konstanten und API-Konstanten vorgestellt. Wenn die bewertete Hardware die HAL-Konstanten nicht implementiert, aktualisieren Sie die auf der Seite Konstanten und Primitiven implementieren beschriebenen Fallbackmuster, um ähnliche Ausgaben zu generieren. Die Zuordnung wird durch zwei verschiedene Standardmodelle unterstützt:
Diskretes Modell (einfach)
- Die Amplitude ist die Schlüsselvariable dieses Modells. Jede Einheit im HAL repräsentiert eine andere haptische Amplitude.
- Dieses Modell ist eine Mindestanforderung für die Implementierung der grundlegenden haptischen Benutzeroberfläche.
- Für eine anspruchsvollere haptische Benutzeroberfläche sind eine anspruchsvolle Hardware und ein anspruchsvolles Modell (kontinuierliches Modell) erforderlich.
Kontinuierliches Modell (erweitert)
- Die wichtigsten Variablen dieses Modells sind Textur und Amplitude. Jede Einheit im HAL repräsentiert unterschiedliche haptische Texturen. Die Amplitude jeder HAL-Einheit wird durch den Skalierungsfaktor (
S) gesteuert. - Für dieses Modell ist fortschrittliche Hardware erforderlich. Wenn OEMs erweiterte haptische UX mit
VibrationEffect.Composition(für die optimale Nutzung der neuesten Haptik-APIs) verwenden möchten, wird die Implementierung ihrer Hardware mit diesem Modell empfohlen.
- Die wichtigsten Variablen dieses Modells sind Textur und Amplitude. Jede Einheit im HAL repräsentiert unterschiedliche haptische Texturen. Die Amplitude jeder HAL-Einheit wird durch den Skalierungsfaktor (
Diskretes Modell
Es wird empfohlen, alle öffentlichen Konstanten der API den entsprechenden HAL-Konstanten zuzuordnen. Um diesen Vorgang zu starten, müssen Sie herausfinden, wie viele haptische Wellenformen mit diskreter Amplitude das Gerät im HAL definieren kann. Eine konkrete Frage zu diesem Thema könnte so aussehen: Wie viele Haptik-Effekte mit einzelnen Impulsen und für Menschen wahrnehmbaren Amplitudendifferenzen können auf meinem Smartphone definiert werden? Die Antwort auf diese Frage bestimmt das Mapping.
Das Definieren von HAL-Konstanten ist ein hardwareabhängiger Prozess. Ein Einsteiger-Smartphone hat möglicherweise nur die Hardware, um eine einzelne haptische Wellenform zu erzeugen. Geräte mit fortschrittlicheren Hardwarekomponenten erzeugen eine größere Bandbreite an diskreten Amplitudenstufen und können mehrere haptische Wellenformen im HAL definieren. Bei der HAL-API-Konstanten-Zuordnung wird die HAL-Konstante (mit der mittleren Amplitude als Baseline) verwendet und dann stärkere oder schwächere Effekte angeordnet.
Abbildung 1. HAL-Konstantenbereich nach Amplitude.
Wenn die Anzahl der HAL-Konstanten mit diskreter Amplitude definiert ist, ist es an der Zeit, HAL- und API-Konstanten nach der Anzahl der HAL-Konstanten zuzuordnen. Bei diesem Zuordnungsprozess kann eine einzelne API-Konstante für den Impuls in bis zu drei diskrete Gruppen von Amplitudenstufen unterteilt werden. Die Segmentierung von API-Konstanten basiert auf UX-Grundsätzen für begleitende Eingabeereignisse. Weitere Informationen finden Sie unter Haptisches UX-Design.
Abbildung 2: HAL-API-Konstantenzuordnung: Diskretes Modell.
Wenn Ihr Gerät nur zwei HAL-Konstanten mit diskreten Amplituden unterstützt, sollten Sie die HAL-Konstanten für die Amplitudenstufen „Mittel“ und „Hoch“ zusammenführen. Ein praktisches Beispiel für dieses Konzept ist die Zuordnung von EFFECT_CLICK und EFFECT_HEAVY_CLICK zur selben HAL-Konstante, nämlich der HAL-Konstante für die mittlere Amplitude. Wenn Ihr Gerät nur eine HAL-Konstante mit diskreter Amplitude unterstützt, sollten Sie alle drei Ebenen in einer zusammenführen.
Kontinuierliches Modell
Das kontinuierliche Modell mit Amplitudenskalierbarkeit kann verwendet werden, um HAL-Konstanten zu definieren. Ein Skalierungsfaktor (S) kann auf die HAL-Konstanten (z. B. HAL_H0, HAL_H1) angewendet werden, um die skalierte HAL (HAL_H0 × S) zu erhalten. In diesem Fall wird die skalierte HAL zugeordnet, um API-Konstanten (HAL_H0 × S1 = H0S1 = EFFECT_TICK) zu definieren, wie in Abbildung 3 dargestellt. Durch die Verwendung der Amplitudenskalierbarkeit des kontinuierlichen Modells kann ein Gerät eine kleine Anzahl von HAL-Konstanten mit unterschiedlichen Texturen speichern und Amplitudenschwankungen durch Anpassen des Skalierungsfaktors (S) hinzufügen. Gerätehersteller können die Anzahl der HAL-Konstanten basierend darauf definieren, wie viele verschiedene haptische Texturen sie bereitstellen möchten.
Abbildung 3: HAL-Konstantenbereich nach Textur (HAL_H0) und Amplitudenskalierung (S).
Abbildung 4: HAL-API-Konstanten-Mapping: Kontinuierliches Modell.
Im kontinuierlichen Modell stellen verschiedene HAL-Konstanten unterschiedliche haptische Texturen und nicht unterschiedliche Amplituden dar. Mit dem Skalierungsfaktor (S) kann die Amplitude konfiguriert werden. Da die Wahrnehmung der Textur (z. B. Schärfe) jedoch mit der Wahrnehmung der Dauer und Amplitude zusammenhängt, wird empfohlen, die Textur und den Skalierungsfaktor (im Designprozess der HAL-API-Zuordnung) zu kombinieren.
Abbildung 5 veranschaulicht die konstante Zuordnung durch Erhöhen der Variation von einer HAL- zu vielen API-Konstanten mit Amplitudenskalierbarkeit.
Abbildung 5: Die Variation wird durch die Amplitudenskalierbarkeit erhöht.
Bei allen skalierbaren API-Konstanten wie PRIMITIVE_TICK und PRIMITIVE_CLICK in VibrationEffect.Composition hängt das Energieniveau der API-Konstante vom Parameter float scale ab, wenn die API-Konstante über addPrimitive(int primitiveID, float scale,
int delay) deklariert wird. PRIMITIVE_TICK und PRIMITIVE_CLICK können durch die Verwendung verschiedener HAL-Konstanten klar voneinander unterschieden werden. Dieser Ansatz wird empfohlen, wenn Sie die Textur variieren möchten.