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 erweiterte haptische Benutzeroberfläche sind erweiterte Hardware und ein erweitertes Modell (kontinuierliches Modell) erforderlich.
Kontinuierliches Modell (erweitert)
- Die wichtigsten Variablen dieses Modells sind Textur und Amplitude. Jede Einheit im HAL steht für eine andere haptische Textur. Die Amplitude jeder HAL-Einheit wird durch den Skalierungsfaktor (
S
) gesteuert. - Für dieses Modell ist eine leistungsstarke Hardware erforderlich. Wenn OEMs erweiterte haptische UX mit
VibrationEffect.Composition
(für die optimale Nutzung der neuesten Haptik-APIs) verwenden möchten, wird empfohlen, ihre Hardware mit diesem Modell zu implementieren.
- Die wichtigsten Variablen dieses Modells sind Textur und Amplitude. Jede Einheit im HAL steht für eine andere haptische Textur. 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, die sich auf diesen Begriff bezieht, lautet: Wie viele einzelne haptische Impulse mit für den 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 beispielsweise möglicherweise nur die Hardware, um eine einzelne haptische Wellenform zu erzeugen. Geräte mit fortschrittlicheren Hardwarekomponenten erzeugen eine größere Bandbreite an diskreten Amplitudenpegeln 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 14. 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 Haptics UX design.
Abbildung 15. 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 hierfür wäre 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 zusammenführen.
Kontinuierliches Modell
Das kontinuierliche Modell mit Amplitudenskalierbarkeit kann zum Definieren von HAL-Konstanten verwendet werden. 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 16 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 hinzufügen, indem der Skalierungsfaktor (S
) angepasst wird. Gerätehersteller können die Anzahl der HAL-Konstanten basierend darauf definieren, wie viele verschiedene haptische Texturen sie bereitstellen möchten.
Abbildung 16: HAL-Konstantenbereich nach Textur (HAL_H0) und Amplitudenskalierung (S)
Abbildung 17. 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 18 veranschaulicht die konstante Zuordnung durch Erhöhen der Variation von einer HAL- zu vielen API-Konstanten mit Amplitudenskalierbarkeit.
Abbildung 18. Variation durch Amplitudenskalierung erhöhen
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 abgegrenzt werden. Dieser Ansatz wird empfohlen, wenn Sie die Textur variieren möchten.