Implémenter le retour haptique

Les fabricants d'appareils sont généralement considérés comme propriétaires des éléments privés créés pour chaque appareil. Par conséquent, leurs efforts d'ingénierie sont souvent axés sur une base par appareil. Peu ou pas d'efforts sont consacrés à la cohérence des autres appareils de l'écosystème.

À l'inverse, les développeurs s'efforcent de créer des applications qui fonctionnent sur tous les téléphones Android de l'écosystème, quelles que soient les spécifications techniques de chaque appareil. Cette différence d'approche peut entraîner un problème de fragmentation. Par exemple, les fonctionnalités matérielles de certains téléphones ne correspondent pas aux attentes des développeurs d'applications. Par conséquent, si les API haptiques fonctionnent sur certains téléphones Android, mais pas sur d'autres, l'écosystème est incohérent. C'est pourquoi la configuration matérielle joue un rôle essentiel pour que les fabricants puissent implémenter les API haptiques Android sur tous les appareils.

Cette page fournit une checklist détaillée pour configurer la conformité matérielle afin d'optimiser l'utilisation des API haptiques Android.

L'image suivante illustre la création de connaissances communes entre les fabricants d'appareils et les développeurs, une étape essentielle pour créer un écosystème cohérent:

Schéma des cas d'utilisation de la haptique pour les développeurs d'applications et les fabricants d'appareils

Figure 1 : Échange de connaissances entre les fabricants d'appareils et les développeurs

Checklist d'implémentation de la haptique

  1. Implémenter des constantes

    • Liste des constantes à implémenter pour la haptique.
  2. Implémenter des primitives

    • Conseils d'implémentation pour les primitives de composition HAL
  3. Mappage des constantes entre HAL et l'API

  4. Évaluer le matériel

    • Instructions sur les effets haptiques cibles. Suivez ces instructions pour effectuer des vérifications rapides sur votre matériel.

Nous reviendrons plus en détail sur chacune de ces étapes ci-dessous.

Étape 1: Implémentez des constantes

Effectuez ces vérifications pour déterminer si votre appareil répond aux conditions minimales requises pour implémenter la haptique:

Organigramme du processus d'implémentation de la haptique

Figure 2. Implémenter des effets

Organigramme des étapes d'implémentation des primitives

Figure 3. Implémenter des primitives

Vérifiez l'état d'implémentation des constantes haptiques suivantes.

Constantes haptiques Lieux et résumés
EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK, EFFECT_DOUBLE_CLICK Classe VibrationEffect
Les constantes haptiques dans VibrationEffect n'incluent aucune notion d'événements d'entrée et ne comportent aucun élément d'interface utilisateur. Les constantes incluent plutôt la notion de niveaux d'énergie, tels que EFFECT_CLICK et EFFECT_HEAVY_CLICK, qui sont appelés par createPredefined().

Les vibrations alternatives décrites ci-dessous sont effectuées sur les appareils qui n'implémentent pas les constantes VibrationEffect. Nous vous recommandons de mettre à jour ces configurations pour optimiser les performances sur ces appareils.

  • EFFECT_CLICK

    Vibration de forme d'onde créée avec VibrationEffect.createWaveform et les délais configurés sur frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern.

  • EFFECT_HEAVY_CLICK

    Vibration de forme d'onde créée avec VibrationEffect.createWaveform et les délais configurés sur frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern.

    • EFFECT_DOUBLE_CLICK

    Vibration de forme d'onde créée avec VibrationEffect.createWaveform et les temps (0, 30, 100, 30).

  • EFFECT_TICK

    Vibration de forme d'onde créée avec VibrationEffect.createWaveform et les délais configurés sur frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern.

Organigramme des étapes à suivre pour tester le retour haptique

Figure 4. Implémenter des constantes de retour

Vérifiez l'état des constantes de commentaires publics suivantes.

Constantes haptiques Lieux et résumés
CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFIRM, REJECT, GESTURE_START, GESTURE_END Classe HapticFeedbackConstants
Les constantes haptiques dans HapticFeedbackConstants aident les événements d'entrée avec certains éléments d'interface utilisateur, tels que KEYBOARD_PRESS etKEYBOARD_RELEASE, qui sont appelés parperformHapticFeedback().

Étape 2: Implémenter des primitives

Les primitives haptiques de VibrationEffect.Composition ont une intensité évolutive que les développeurs peuvent utiliser via addPrimitive(int primitiveId, float scale, int delay). Les primitives peuvent être divisées en deux catégories:

  • Primitives courtes:primitives de courte durée, généralement inférieure à 20 ms. Il s'agit de CLICK, TICK et LOW_TICK.

  • Primitives de chirp:primitives dont l'amplitude et la fréquence varient, généralement avec une durée plus longue que les primitives courtes. Il s'agit de SLOW_RISE, QUICK_RISE, QUCK_FALL, THUD et SPIN.

Primitives courtes

Les primitives courtes peuvent être décrites par le profil d'accélération de la sortie du moteur du vibreur. La fréquence absolue utilisée varie pour chaque primitive, en fonction de la fréquence de résonance de l'actionneur. Pour en savoir plus sur la configuration matérielle et les outils de mesure de la sortie, consultez la section Configurer l'équipement de test.

Le rapport de pulsation sur sonnerie (PRR, Pulse to Ring Ratio), illustré à la figure 5, est une métrique de qualité utile pour les vibrations courtes. Le PRR est défini comme le rapport entre le principal pulse (impulsion principale), défini par le signal dans la fenêtre de durée où l'amplitude diminue à 10% de l'amplitude de pointe, et le ring pulse (impulsion en anneau), défini par le signal où l'amplitude diminue de 10% de l'amplitude de pointe à moins de 1% de l'amplitude de pointe. Pour en savoir plus sur la PRR, consultez la section Analyser la forme d'onde. Pour en savoir plus sur l'analyse et la comparaison des résultats, consultez la section Comparer les résultats à l'aide de la carte des performances.

Rapport pouls/sonnerie

Figure 5. Définition du rapport entre le pouls et la sonnerie

Appliquez des primitives courtes en tant que commentaires d'entrée utilisateur ou en les jouant dans des compositions plus longues pour créer des textures douces. Cela signifie qu'elles sont généralement déclenchées fréquemment et jouées en succession rapide. L'intensité perçue d'une seule primitive courte peut renforcer l'intensité de l'effet plus important. Pour cette raison, calibrez une seule primitive de "tic" ou de "tic bas" avec une composition plus importante, par exemple 100 tics consécutifs.

Primitive de clic

La primitive de clic est un effet puissant et net qui fonctionne généralement près de la fréquence de résonance d'un appareil pour atteindre une sortie maximale en peu de temps. Il est plus fort et plus profond que les autres primitives, et fonctionne à une intensité maximale.

Si disponible, utilisez la suralimentation du moteur au début et le freinage actif à la fin pour obtenir un temps de montée et de descente du moteur court. Pour certains moteurs, l'utilisation d'une onde carrée au lieu d'une onde sinusoïdale peut accélérer l'accélération. La figure 6 montre un exemple de profil d'accélération de sortie pour la primitive de clic:

Profil d'accélération de sortie de la primitive

Figure 6. Exemple de profil d'accélération de sortie pour la primitive de clic

Paramètre Consigne
Durée

Cible: 12 ms

Limite: < 30 ms

Accélération de sortie maximale

Cible: 2 G

Limite: > 1 Go

Fréquence À peu près à la fréquence de résonance

Primitive "tick" (tic)

La primitive "tick" est un effet court et net qui fonctionne généralement dans une plage de fréquences plus élevée. Cette primitive peut également être décrite comme un clic d'intensité moyenne à une fréquence plus élevée avec une courte queue. Les mêmes conseils s'appliquent pour obtenir un temps de montée court à l'aide d'une suralimentation du moteur ou d'une onde carrée pour le début initial, et d'un freinage actif au décalage. La figure 7 montre un exemple de profil d'accélération de sortie pour la primitive de "tic" :

Profil d&#39;accélération de sortie de la primitive de coche

Figure 7. Exemple de profil d'accélération de sortie pour la primitive de "tic"

Paramètre Consigne
Durée

Cible: 5 ms

Limite: < 20 ms

Accélération de sortie maximale

Cible: moitié de CLICK, 1 Go

Limite: entre 0,5 Go et 1 Go

Fréquence

Cible: 2 fois la fréquence de résonance

Limite: < 500 Hz

Primitive de faible tick

La primitive de clignotement faible est une version plus douce et plus faible d'un clignotement léger, qui fonctionne à une plage de fréquences plus basse pour donner plus de corps à l'effet. Cette primitive peut également être décrite comme un clic d'intensité moyenne à une fréquence plus faible, destiné à être utilisé de manière répétitive pour obtenir des commentaires dynamiques. Les mêmes conseils s'appliquent pour obtenir un temps de montée court à l'aide d'une suralimentation du moteur ou d'une onde carrée pour le début initial. La figure 8 présente un exemple de profil d'accélération de sortie pour la primitive de faible tick:

Profil d&#39;accélération de sortie de primitive à faible &quot;tic&quot;

Figure 8. Exemple de profil d'accélération de sortie pour la primitive de faible "tic"

Paramètre Consigne
Durée

Cible: 12 ms

Limite: < 30 ms

Accélération de sortie maximale

Cible: 1/4 de TICK, 0,25 Go

Limite: entre 0,2 Go et 0,5 Go

Fréquence

Cible: fréquence de résonance 2/3

Limite: < 100 Hz

Primitives Chirp

Les primitives de chirp peuvent être décrites par les signaux d'entrée pour le niveau de tension et la fréquence de vibration. L'accélération que le moteur peut produire à différentes plages de fréquences varie en fonction de la courbe de réponse en fréquence de l'actionneur. Les plages de fréquences et les niveaux de tension doivent être ajustés pour chaque appareil.

Primitive de montée lente

La montée lente est une montée lente de l'amplitude et de la fréquence vers le haut avec un début doux et une intensité de vibration croissante tout au long de la balayage. Il peut être implémenté par un balayage cohérent de l'amplitude et de la fréquence, à l'aide d'une plage de fréquences inférieure qui fonctionne en dehors de la résonance. La figure 9 montre les paramètres d'entrée et un exemple de profil d'accélération de sortie pour cette implémentation. (La ligne rouge correspond aux étiquettes d'amplitude à gauche et représente l'évolution de l'amplitude des vibrations au fil du temps. La ligne bleue correspond aux étiquettes de fréquence à droite et représente la variation de la fréquence de vibration au fil du temps.)

Paramètres d&#39;entrée et profil d&#39;accélération de sortie pour la primitive de montée lente

Figure 9. Paramètres d'entrée et exemple de profil d'accélération de sortie pour la primitive de montée lente

Si la réponse en fréquence du moteur est limitée (pas assez forte en dehors de sa fréquence de résonance), une autre implémentation consiste à effectuer un balayage en sinus de 1/2 à 1 fois la fréquence de résonance. La résonance du moteur contribue à atteindre le pic du signal à la fin.

Paramètre Consigne
Durée

Cible: 500 ms

Tolérance: 20 ms

Accélération de sortie maximale

Cible: 0,5 Go

Limite: entre 0,5 Go et 1 Go

Fréquence

Cible: 1/2 à 2/3 de la fréquence de résonance

Autre: 1/2 de la fréquence de résonance

Primitive de montée rapide

La montée rapide correspond à une amplitude et une fréquence plus rapides vers le haut, avec un début doux et une intensité de vibration croissante tout au long de la balayage. Les cibles d'accélération de sortie et de fréquence de vibration doivent être les mêmes que celles de la primitive de montée lente, obtenues sur une durée plus courte. La figure 10 montre les paramètres d'entrée de vibration et un exemple de profil d'accélération de sortie pour la primitive de montée lente. (La ligne rouge correspond aux étiquettes d'amplitude à gauche et représente l'évolution de l'amplitude des vibrations au fil du temps. La ligne bleue correspond aux étiquettes de fréquence à droite et représente la variation de la fréquence de vibration au fil du temps.)

Paramètres d&#39;entrée et profil d&#39;accélération de sortie pour la primitive de montée rapide

Figure 10. Paramètres d'entrée et exemple de profil d'accélération de sortie pour la primitive de montée rapide

Paramètre Consigne
Durée

Cible: 150 ms

Tolérance: 20 ms

Accélération de sortie maximale

Cible: identique à SLOW_RISE

Limite: identique à SLOW_RISE

Fréquence

Cible: identique à SLOW_RISE

Alternative: identique à SLOW_RISE

Primitive de chute rapide

La chute rapide est un balayage rapide de l'amplitude et de la fréquence vers le bas avec un début doux. Vous pouvez utiliser une fréquence plus élevée comme point de départ lorsque le moteur augmente progressivement pour atteindre l'accélération de sortie maximale. La fréquence doit diminuer de manière cohérente tout au long de la balayage, même pendant le temps de montée. La figure 11 montre les paramètres d'entrée et un exemple de profil d'accélération de sortie pour cette implémentation. (La ligne rouge correspond aux étiquettes d'amplitude à gauche et représente l'évolution de l'amplitude des vibrations au fil du temps. La ligne bleue correspond aux étiquettes de fréquence à droite et représente la variation de la fréquence de vibration au fil du temps.)

Paramètres d&#39;entrée et profil d&#39;accélération de sortie pour la primitive de chute rapide

Figure 11 : Paramètres d'entrée et exemple de profil d'accélération de sortie pour la primitive de chute rapide

Paramètre Consigne
Durée

Cible: 100 ms

Tolérance: 20 ms

Accélération de sortie maximale

Cible: 1 G

Limite: entre 0,5 Go et 2 Go

Fréquence

Cible: 2 à 1 fois la fréquence de résonance

Primitive "Thud"

Le "thud" est un effet percutant, bas et percutant qui simule la sensation physique de frapper sur du bois creux. Cette primitive fonctionne dans une plage de fréquences basse, semblable à la primitive de faible "tic", pour donner plus de corps à l'effet. Vous pouvez implémenter la primitive "thud" en effectuant un balayage descendant de l'amplitude et de la fréquence dans une plage de fréquences inférieure (de préférence inférieure à 100 Hz). La figure 12 présente les paramètres d'entrée et un exemple de profil d'accélération de sortie pour cette implémentation. (La ligne rouge correspond aux étiquettes d'amplitude à gauche et représente l'évolution de l'amplitude des vibrations au fil du temps. La ligne bleue correspond aux étiquettes de fréquence à droite et représente la variation de la fréquence de vibration au fil du temps.)

Paramètres d&#39;entrée et profil d&#39;accélération de sortie pour la primitive thud

Figure 12. Paramètres d'entrée et exemple de profil d'accélération de sortie pour la primitive thud

Si la réponse en fréquence du moteur est limitée, une autre implémentation consiste à commencer avec un signal d'entraînement à pleine intensité à la fréquence de résonance et à passer à la fréquence la plus basse possible qui peut encore être perçue. Cette approche peut nécessiter une augmentation de l'intensité du signal de commande à la fréquence inférieure pour que la vibration soit ressentie.

Paramètre Consigne
Durée

Cible: 300 ms

Tolérance: 20 ms

Accélération de sortie maximale

Cible: 0,25 G

Limite: entre 0,2 Go et 0,5 Go

Fréquence

Cible: 1/2 à 1/3 de la fréquence de résonance

Autre option: 1 à 1/2 de la fréquence de résonance

Primitive de rotation

La rotation simule un élan de rotation rapide de haut en bas avec un léger accent au centre. La rotation peut être implémentée en balayant l'amplitude et la fréquence indépendamment, dans des directions opposées, puis en effectuant le mouvement inverse. Il est important d'utiliser une plage de fréquences plus basse (de préférence inférieure à 100 Hz). La figure 13 montre les paramètres d'entrée et un exemple de profil d'accélération de sortie pour cette implémentation. (La ligne rouge correspond aux étiquettes d'amplitude à gauche et représente l'évolution de l'amplitude des vibrations au fil du temps. La ligne bleue correspond aux étiquettes de fréquence à droite et représente la variation de la fréquence de vibration au fil du temps.)

Nous vous recommandons d'appeler la primitive de rotation deux fois de suite ou trois fois dans les compositions pour obtenir une sensation de rotation et d'instabilité.

Si la réponse en fréquence du moteur est limitée, une autre implémentation consiste à effectuer un balayage sinusoïdal rapide de 1/2 à 1 fois la fréquence de résonance et inversement. La résonance du moteur donne automatiquement un accent au milieu du signal.

Paramètres d&#39;entrée et profil d&#39;accélération de sortie pour la primitive de rotation

Figure 13. Paramètres d'entrée et exemple de profil d'accélération de sortie pour la primitive de rotation

Paramètre Consigne
Durée

Cible: 150 ms

Tolérance: 20 ms

Accélération de sortie maximale

Cible: 0,5 Go

Limite: entre 0,25 Go et 0,75 Go

Fréquence

Cible: 2/3 à 1/3, puis retour à 1/2 de la fréquence de résonance

Autre option: 2/3 à 1 x, puis retour à 1/2 de la fréquence de résonance

Étape 3: Mappez les constantes entre HAL et l'API

L'étape 3 présente les mappages recommandés entre les constantes HAL publiques et les constantes de l'API. Si le matériel évalué à l'étape 1 n'implémente pas les constantes HAL, utilisez l'étape 3 pour mettre à jour les modèles de remplacement décrits à l'étape 1 afin de générer des sorties similaires. Le mappage est assisté par deux modèles par défaut différents:

  • Modèle discret (simple)

    • L'amplitude est la variable clé de ce modèle. Chaque entité du HAL représente une amplitude haptique différente.
    • Ce modèle est une exigence minimale requise pour implémenter l'expérience utilisateur haptique de base.
    • Une expérience haptique plus avancée nécessite du matériel et un modèle avancés (modèle continu).
  • Modèle continu (avancé)

    • La texture et l'amplitude sont les variables clés de ce modèle. Chaque entité du HAL représente différentes textures haptiques. L'amplitude de chaque entité HAL est contrôlée par le facteur d'échelle (S).
    • Ce modèle nécessite du matériel avancé. Si les OEM souhaitent utiliser une expérience haptique avancée avec VibrationEffect.Composition (pour une utilisation optimale des dernières API haptiques), il est recommandé d'implémenter leur matériel à l'aide de ce modèle.

Modèle discret

Il est recommandé de mapper toutes les constantes publiques fournies dans l'API avec les constantes HAL appropriées. Pour commencer ce processus, déterminez le nombre de formes d'onde haptique à amplitude discrète que l'appareil peut définir dans le HAL. Une question spécifique structurée autour de cette notion se présente comme suit: Combien d'effets haptiques à impulsion unique avec des différences d'amplitude perceptibles par l'homme peuvent être définis sur mon téléphone ? La réponse à cette question détermine le mappage.

La définition des constantes HAL est un processus dépendant du matériel. Par exemple, un téléphone d'entrée de gamme ne peut peut-être produire qu'une seule forme d'onde haptique. Les appareils dotés de composants matériels plus avancés produisent une plage plus large de niveaux d'amplitude discrets et peuvent définir plusieurs formes d'ondes haptiques dans le HAL. La mise en correspondance des constantes HAL-API prend la constante HAL (en utilisant l'amplitude moyenne comme référence), puis organise les effets plus forts ou plus faibles à partir de là.

Diagramme de la plage de constantes HAL et des amplitudes de rétroaction

Figure 14. Plage de constantes HAL par amplitude

Lorsque le nombre de constantes HAL avec amplitude discrète est défini, il est temps de mapper les constantes HAL et API en fonction du nombre de constantes HAL. Ce processus de mappage peut segmenter une seule constante d'API d'impulsion en trois groupes distincts de niveaux d'amplitude. La segmentation des constantes de l'API est basée sur les principes d'expérience utilisateur pour les événements d'entrée associés. Pour en savoir plus, consultez la section Conception UX haptique.

Modèle discret pour la mise en correspondance des constantes HAL-API

Figure 15. Mappage des constantes HAL-API: modèle discret

Si votre appareil n'est compatible qu'avec deux constantes HAL avec des amplitudes discrètes, envisagez de fusionner les constantes HAL de niveau d'amplitude moyen et élevé. Un exemple de cette notion en pratique consiste à mapper EFFECT_CLICK et EFFECT_HEAVY_CLICK sur la même constante HAL, qui serait la constante HAL de niveau d'amplitude moyen. Si votre appareil n'est compatible qu'avec une constante HAL avec une amplitude discrète, envisagez de fusionner les trois niveaux en un.

Modèle continu

Le modèle continu avec évolutivité de l'amplitude peut être appliqué pour définir des constantes HAL. Un facteur de mise à l'échelle (S) peut être appliqué aux constantes HAL (par exemple, HAL_H0, HAL_H1) pour générer la HAL mise à l'échelle (HAL_H0 x S). Dans ce cas, la HAL mise à l'échelle est mappée pour définir les constantes d'API (HAL_H0 x S1 = H0S1 = EFFECT_TICK), comme illustré à la figure 16. En utilisant la scalabilité de l'amplitude du modèle continu, un appareil peut stocker un petit nombre de constantes HAL avec des textures distinctives et ajouter des variations d'amplitude en ajustant le facteur de mise à l'échelle (S). Les fabricants d'appareils peuvent définir le nombre de constantes HAL en fonction du nombre de textures haptiques différentes qu'ils souhaitent fournir.

Plage de constantes HAL par texture et amplitude

Figure 16. Plage de constantes HAL par texture (HAL_H0) et échelle d'amplitude (S)

Modèle continu pour la mise en correspondance des constantes HAL-API

Figure 17. Mappage des constantes HAL-API: modèle continu

Dans le modèle continu, différentes constantes HAL représentent différentes textures haptiques plutôt que différentes amplitudes. Le facteur de mise à l'échelle (S) peut configurer l'amplitude. Toutefois, comme la perception de la texture (par exemple, la netteté) est liée à la perception de la durée et de l'amplitude, il est recommandé de combiner la texture et le facteur de mise à l'échelle (dans le processus de conception de la mise en correspondance HAL-API).

La figure 18 illustre le mappage de constantes en augmentant la variation d'un HAL à de nombreuses constantes d'API avec une évolutivité d'amplitude.

Augmentation de la variante 1

Augmentation de la variation 2

Figure 18. Augmenter la variation avec l'évolutivité de l'amplitude

Pour toutes les constantes d'API évolutives telles que PRIMITIVE_TICK et PRIMITIVE_CLICK dans VibrationEffect.Composition, le niveau d'énergie de la constante d'API dépend du paramètre float scale lorsque la constante d'API est déclarée via addPrimitive(int primitiveID, float scale, int delay). PRIMITIVE_TICK et PRIMITIVE_CLICK peuvent être conçus avec une distinction claire à l'aide de constantes HAL différentes. Cette approche est recommandée si vous souhaitez ajouter de la variation à la texture.

Étape 4: Évaluez le matériel

L'évaluation matérielle implique de définir trois effets haptiques, nommés Effets 1, 2 et 3 pour cette évaluation spécifique.

Effet 1: constantes haptiques courtes prédéfinies

La constante VibrationEffect.EFFECT_CLICK correspond à l'effet de référence ou au dénominateur commun dans le mappage HAL-API fourni à l'étape 2. Il est mappé avec l'effet le plus utilisé, HapticFeedbackConstants.KEYBOARD_PRESS. Évaluer cet effet permet de déterminer si votre appareil cible est prêt à utiliser la haptique claire.

Effet 2: Effet haptique personnalisé court

La constante VibrationEffect.createOneShot(20,255) est destinée aux effets haptiques personnalisés. Pour les impulsions personnalisées courtes et uniques, le seuil maximal recommandé pour définir la durée est de 20 ms. Une seule impulsion de plus de 20 ms n'est pas recommandée, car elle est perçue comme une vibration bourdonnante.

Forme d&#39;onde d&#39;un court effet haptique personnalisé

Figure 19. Effet haptique personnalisé court

Effet 3: Effet haptique personnalisé long avec variation d'amplitude

La constante VibrationEffect.createWaveform(timings[], amplitudes[], int repeat) est destinée aux effets personnalisés longs avec variation d'amplitude. La capacité à produire des amplitudes variables pour les effets haptiques personnalisés est l'un des indicateurs permettant d'évaluer les capacités de l'appareil pour les haptiques riches. Les valeurs timings [] et amplitudes [] recommandées sont respectivement {500, 500} et {128, 255}, qui présentent une tendance à l'augmentation de l'amplitude de 50% à 100%, avec un taux d'échantillonnage de 500 ms.

Forme d&#39;onde de l&#39;effet haptique avec variation d&#39;amplitude

Figure 20. Effet haptique personnalisé long avec variation d'amplitude

Pour vérifier les capacités matérielles de la commande d'amplitude pour l'effet 3, utilisez la méthode Vibrator.hasAmplitudeControl(). Le résultat doit être true pour exécuter VibrationEffect.createWaveform avec une amplitude variable comme prévu.

Organigramme de l&#39;évaluation subjective des effets haptiques

Figure 21. Évaluation de l'effet haptique 1, 2 et 3 par les sujets

Effectuer une évaluation subjective

Pour effectuer un contrôle rapide de la cohérence, effectuez d'abord une évaluation subjective. L'objectif de l'évaluation subjective est d'observer l'amplitude des effets haptiques pour déterminer si l'appareil peut générer des effets haptiques avec des amplitudes perceptibles par l'humain.

Une question spécifique structurée autour de cette notion se présente comme suit: L'appareil peut-il produire des effets haptiques perceptibles pour les utilisateurs comme prévu ? Répondre à cette question vous aide à éviter les échecs haptiques, y compris les haptiques imperceptibles que les utilisateurs ne peuvent pas ressentir, ou les haptiques involontaires où les formes d'ondes ne produisent pas de motifs comme prévu.

Effectuer une évaluation avancée

Nous vous recommandons vivement d'effectuer des évaluations de qualité avancées. Les évaluations de qualité avancées caractérisent les attributs quantifiables des effets haptiques afin d'implémenter des haptiques de qualité. Une fois terminé, les fabricants d'appareils doivent pouvoir diagnostiquer l'état actuel de la technologie haptique, ce qui leur permet de définir des objectifs pour améliorer la qualité globale. Consultez la section Évaluation du matériel.