Por lo general, los fabricantes de dispositivos se consideran los propietarios de los recursos privados que se crean para cada dispositivo. Por lo tanto, sus esfuerzos de ingeniería suelen enfocarse en una base por dispositivo; se dedica poco o ningún esfuerzo a la coherencia de otros dispositivos del ecosistema.
En cambio, los desarrolladores se esfuerzan por compilar apps que funcionen en todos los teléfonos Android del ecosistema, independientemente de las especificaciones técnicas de cada dispositivo. Esta diferencia en el enfoque puede causar un problema de fragmentación, por ejemplo, las capacidades de hardware de ciertos teléfonos no coinciden con las expectativas establecidas por los desarrolladores de apps. Por lo tanto, si las APIs de la tecnología táctil funcionan en algunos teléfonos Android, pero no en otros, el resultado es un ecosistema incoherente. Por eso, la configuración de hardware juega un papel fundamental para garantizar que los fabricantes puedan implementar las APIs de la tecnología táctil de Android en todos los dispositivos.
En esta página, se proporciona una lista de tareas paso a paso para configurar la conformidad de hardware para el mejor uso de las APIs de la tecnología táctil de Android.
En la siguiente imagen, se ilustra la creación de conocimiento común entre los desarrolladores y los fabricantes de dispositivos, que es un paso fundamental para crear un ecosistema cohesivo:
Figura 1: Compartir conocimientos entre los fabricantes y desarrolladores de dispositivos
Lista de tareas para la implementación de la tecnología táctil
-
- Es una lista de constantes para implementar la tecnología táctil.
-
- Orientación para la implementación de primitivas de composición de HAL
Asigna constantes entre HAL y la API
- Recomendaciones de asignación entre constantes de API públicas (llamadas marcadores de posición en el framework) y constantes de HAL, que implementan los marcadores de posición.
- Consulta Principios de diseño para guiar la asignación recomendada para obtener más información sobre este proceso.
-
- Instrucciones sobre los efectos táctiles de destino Usa estas instrucciones para realizar verificaciones rápidas en el hardware.
A continuación, exploraremos cada uno de estos pasos con más detalle.
Paso 1: Implementa constantes
Realiza estas verificaciones para determinar si tu dispositivo cumple con los requisitos mínimos para implementar la tecnología táctil:
Figura 2: Implementa efectos
Figura 3: Cómo implementar primitivas
Verifica el estado de implementación de las siguientes constantes táctiles.
Constantes táctiles | Ubicaciones y resúmenes |
---|---|
EFFECT_TICK , EFFECT_CLICK ,
EFFECT_HEAVY_CLICK ,
EFFECT_DOUBLE_CLICK |
Clase
VibrationEffect Las constantes táctiles en VibrationEffect no incluyen ninguna noción de eventos de entrada ni tienen elementos de IU. En cambio, las constantes incluyen la noción de niveles de energía, como EFFECT_CLICK y EFFECT_HEAVY_CLICK , a los que llama
createPredefined() . |
Las vibraciones alternativas que se describen a continuación se realizan en dispositivos que no implementan las constantes VibrationEffect
. Se recomienda actualizar estos parámetros de configuración para obtener el mejor rendimiento en esos dispositivos.
EFFECT_CLICK
Vibración de forma de onda creada con
VibrationEffect.createWaveform
y los tiempos configurados enframeworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern
.EFFECT_HEAVY_CLICK
Vibración de forma de onda creada con
VibrationEffect.createWaveform
y los tiempos configurados enframeworks/base/core/res/res/values/config.xml##config_longPressVibePattern
.EFFECT_DOUBLE_CLICK
Vibración de forma de onda creada con
VibrationEffect.createWaveform
y los tiempos (0, 30, 100, 30).EFFECT_TICK
Vibración de forma de onda creada con
VibrationEffect.createWaveform
y los tiempos configurados enframeworks/base/core/res/res/values/config.xml##config_clockTickVibePattern
.
Figura 4: Cómo implementar constantes de comentarios
Verifica el estado de las siguientes constantes de comentarios públicos.
Constantes táctiles | Ubicaciones y resúmenes |
---|---|
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 |
Las constantes táctiles de la clase HapticFeedbackConstants ayudan a los eventos de entrada con ciertos elementos de la IU, como KEYBOARD_PRESS y KEYBOARD_RELEASE , a los que llama performHapticFeedback() . HapticFeedbackConstants |
Paso 2: Implementa primitivas
Las primitivas táctiles en VibrationEffect.Composition
tienen una intensidad escalable que los desarrolladores pueden usar a través de addPrimitive(int primitiveId, float scale, int delay)
.
Las primitivas se pueden dividir en dos categorías:
Primitivas cortas: Son primitivas con una duración corta, por lo general, inferior a 20 ms. Estas son
CLICK
,TICK
yLOW_TICK
.Primitivos de chirrido: Son primitivos con amplitud y frecuencia variables, por lo general, con una duración más larga que los primitivos cortos. Estos son
SLOW_RISE
,QUICK_RISE
,QUCK_FALL
,THUD
ySPIN
.
Primitivos cortos
El perfil de aceleración de salida del motor del vibrador puede describir las primitivas cortas. La frecuencia absoluta que se usa varía para cada primitiva, según la frecuencia resonante del actuador. Consulta Cómo configurar el equipo de prueba para obtener más información sobre la configuración de hardware y las herramientas para medir el resultado.
Una métrica de calidad valiosa para las vibraciones cortas es la relación pulso a timbre (PRR), que se muestra en la Figura 5. El PRR se define como la relación entre el pulso principal, que se define por la señal dentro de la ventana de duración en la que la amplitud disminuye al 10% de la amplitud máxima, y el pulso de anillo, que se define por la señal en la que la amplitud disminuye del 10% de la amplitud máxima a menos del 1% de la amplitud máxima. Para obtener más información sobre la PRR, consulta Cómo analizar la forma de onda y, para obtener más información sobre cómo analizar y comparar los resultados, consulta Cómo comparar los resultados con el mapa de rendimiento.
Figura 5: Definición de la proporción de pulso a timbre
Aplica primitivas cortas como comentarios de entrada del usuario o reprodúcelas en composiciones más largas para crear texturas suaves. Esto significa que, por lo general, se activan con frecuencia y se reproducen en rápida sucesión. La intensidad percibida de una sola primitiva corta puede aumentar la intensidad del efecto más grande. Por este motivo, mide una sola marca o una primitiva de marca baja con una composición más grande, por ejemplo, 100 marcas consecutivas.
Primitiva de clic
La primitiva de clic es un efecto fuerte y nítido que suele funcionar cerca de la frecuencia resonante de un dispositivo para alcanzar una salida máxima en un período breve. Es más fuerte y profunda que las otras primitivas, y funciona con la máxima intensidad.
Si está disponible, usa la sobremarcha del motor al principio y el frenado activo al final para lograr un tiempo de ascenso y descenso del motor corto. En algunos motores, usar una onda cuadrada en lugar de una sinusoidal puede lograr una aceleración más rápida. En la Figura 6, se muestra un ejemplo de perfil de aceleración de salida para la primitiva de clic:
Figura 6: Ejemplo de perfil de aceleración de salida para la primitiva de clic
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 12 ms Límite: < 30 ms |
Aceleración máxima de salida |
Objetivo: 2 G Límite: > 1 G |
Frecuencia | Aproximadamente a la frecuencia resonante |
Primitive de marca (marca clara)
La primitiva de marca es un efecto nítido y corto que suele funcionar en un rango de frecuencia más alto. Esta primitiva también se puede describir como un clic de intensidad media con una frecuencia más alta y una cola corta. La misma orientación se aplica para lograr un tiempo de ascenso corto con la sobrecarga del motor o una onda cuadrada para el inicio inicial y el frenado activo en el desplazamiento. En la figura 7, se muestra un ejemplo de perfil de aceleración de salida para la primitiva de marca de tiempo:
Figura 7: Ejemplo de perfil de aceleración de salida para la primitiva de marca
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 5 ms Límite: Menos de 20 ms |
Aceleración máxima de salida |
Objetivo: La mitad de Límite: Entre 0.5 G y 1 G |
Frecuencia |
Objetivo: 2 veces la frecuencia resonante Límite: < 500 Hz |
Primitiva de marca de tiempo baja
La primitiva de tick bajo es una versión más suave y débil de un tick claro, que funciona en un rango de frecuencia más bajo para proporcionar más cuerpo al efecto. Esta primitiva también se puede describir como un clic de intensidad media con una frecuencia más baja, que se usa de forma repetitiva para obtener comentarios dinámicos. La misma guía se aplica para lograr un tiempo de ascenso corto con la sobrecarga del motor o una onda cuadrada para el inicio inicial. En la Figura 8, se muestra un ejemplo de perfil de aceleración de salida para la primitiva de tick bajo:
Figura 8: Ejemplo de perfil de aceleración de salida para primitiva de tick bajo
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 12 ms Límite: < 30 ms |
Aceleración máxima de salida |
Objetivo: 1/4 de Límite: Entre 0.2 G y 0.5 G |
Frecuencia |
Objetivo: Frecuencia resonante de 2/3 Límite: < 100 Hz |
Primitivas de Chirp
Las primitivas de chirrido se pueden describir con los indicadores de entrada para el nivel de voltaje y la frecuencia de vibración. La aceleración que el motor puede generar en diferentes rangos de frecuencia varía según la curva de respuesta de frecuencia del actuador. Los rangos de frecuencia y los niveles de voltaje deben ajustarse por dispositivo.
Primitivo de aumento lento
El aumento lento es un barrido lento de amplitud y frecuencia hacia arriba con un inicio suave y una intensidad de vibración que aumenta de forma constante durante el barrido. Se puede implementar mediante un barrido coherente de la amplitud y la frecuencia, con un rango de frecuencia más bajo que funciona fuera de la resonancia. En la Figura 9, se muestran los parámetros de entrada y un ejemplo de perfil de aceleración de salida para esta implementación. (La línea roja coincide con las etiquetas de amplitud de la izquierda y representa cómo varía la amplitud de vibración con el tiempo. La línea azul coincide con las etiquetas de frecuencia de la derecha y representa cómo varía la frecuencia de vibración con el tiempo.
Figura 9: Parámetros de entrada y ejemplo de perfil de aceleración de salida para la primitiva de aumento lento
Si la respuesta de frecuencia del motor es limitada (no es lo suficientemente fuerte fuera de su frecuencia resonante), una implementación alternativa es un barrido de seno de 1/2x a 1x la frecuencia resonante. La resonancia del motor contribuye a alcanzar el pico de señal al final.
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 500 ms Tolerancia: 20 ms |
Aceleración máxima de salida |
Objetivo: 0.5 G Límite: Entre 0.5 G y 1 G |
Frecuencia |
Objetivo: De 1/2 a 2/3 de la frecuencia resonante Alternativa: 1/2 a la frecuencia resonante |
Primitive de aumento rápido
El aumento rápido es un barrido de amplitud y frecuencia más rápido hacia arriba con un inicio suave y una intensidad de vibración que aumenta de forma constante durante el barrido. Los objetivos de frecuencia de vibración y aceleración de salida deben ser los mismos que los de la primitiva de aumento lento, que se logra en una duración más corta. En la Figura 10, se muestran los parámetros de entrada de vibración y un ejemplo de perfil de aceleración de salida para la primitiva de aumento lento. (La línea roja coincide con las etiquetas de amplitud de la izquierda y representa cómo varía la amplitud de vibración con el tiempo. La línea azul coincide con las etiquetas de frecuencia de la derecha y representa cómo varía la frecuencia de vibración con el tiempo.
Figura 10: Parámetros de entrada y ejemplo de perfil de aceleración de salida para la primitiva de aumento rápido
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 150 ms Tolerancia: 20 ms |
Aceleración máxima de salida |
Segmentación: Igual que en Límite: Igual que |
Frecuencia |
Segmentación: Igual que en Alternativa: Igual que |
Primitive de caída rápida
La caída rápida es un barrido descendente rápido de amplitud y frecuencia con un inicio suave. Puedes usar una frecuencia más alta como punto de partida mientras el motor se acelera para alcanzar la aceleración máxima de salida. La frecuencia debe disminuir de manera coherente en todo el barrido, incluso durante el tiempo de ascenso. En la Figura 11, se muestran los parámetros de entrada y un ejemplo de perfil de aceleración de salida para esta implementación. (La línea roja coincide con las etiquetas de amplitud de la izquierda y representa cómo varía la amplitud de la vibración con el tiempo. La línea azul coincide con las etiquetas de frecuencia de la derecha y representa cómo varía la frecuencia de vibración con el tiempo.
Figura 11: Parámetros de entrada y ejemplo de perfil de aceleración de salida para la primitiva de caída rápida
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 100 ms Tolerancia: 20 ms |
Aceleración máxima de salida |
Objetivo: 1 G Límite: Entre 0.5 G y 2 G |
Frecuencia |
Objetivo: De 2 a 1 veces la frecuencia resonante |
Primitiva Thud
El golpe es un efecto percusivo bajo y sordo que simula la sensación física de golpear madera hueca. Esta primitiva opera en un rango de frecuencia baja, similar a la primitiva de tic bajo, para proporcionar más cuerpo al efecto. Puedes implementar la primitiva de golpe como un barrido descendente de amplitud y frecuencia en un rango de frecuencia más bajo (preferentemente, menos de 100 Hz). En la Figura 12, se muestran los parámetros de entrada y un ejemplo de perfil de aceleración de salida para esta implementación. (La línea roja coincide con las etiquetas de amplitud de la izquierda y representa cómo varía la amplitud de vibración con el tiempo. La línea azul coincide con las etiquetas de frecuencia de la derecha y representa cómo varía la frecuencia de vibración con el tiempo.
Figura 12: Parámetros de entrada y ejemplo de perfil de aceleración de salida para la primitiva thud
Si la respuesta de frecuencia del motor es limitada, una implementación alternativa es comenzar con una señal de accionamiento de intensidad completa en la frecuencia resonante y bajar a la frecuencia más baja posible que aún se pueda percibir. Es posible que este enfoque requiera un aumento de la intensidad de la señal de accionamiento en la frecuencia más baja para que se sienta la vibración.
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 300 ms Tolerancia: 20 ms |
Aceleración máxima de salida |
Objetivo: 0.25 G Límite: Entre 0.2 G y 0.5 G |
Frecuencia |
Objetivo: De 1/2 a 1/3 de la frecuencia resonante Alternativa: De 1 a 1/2 de la frecuencia resonante |
Primitiva de giro
El giro simula un momento de giro rápido hacia arriba y hacia abajo con un ligero acento en el centro. Para implementar el giro, se debe barrer la amplitud y la frecuencia de forma independiente, en direcciones opuestas y, luego, seguir con el movimiento inverso. Es importante usar un rango de frecuencia más bajo (preferentemente inferior a 100 Hz). En la Figura 13, se muestran los parámetros de entrada y un ejemplo de perfil de aceleración de salida para esta implementación. (La línea roja coincide con las etiquetas de amplitud de la izquierda y representa cómo varía la amplitud de vibración con el tiempo. La línea azul coincide con las etiquetas de frecuencia de la derecha y representa cómo varía la frecuencia de vibración con el tiempo.
Recomendamos que se llame a la primitiva de giro dos veces seguidas o tres veces en las composiciones para lograr una sensación de giro y de inestabilidad.
Si la respuesta de frecuencia del motor es limitada, una implementación alternativa es realizar un barrido de seno rápido de 1/2x a 1x la frecuencia resonante y viceversa. La resonancia del motor le da automáticamente un acento al medio de la señal.
Figura 13: Parámetros de entrada y ejemplo de perfil de aceleración de salida para la primitiva de giro
Parámetro | Guideline |
---|---|
Duración |
Objetivo: 150 ms Tolerancia: 20 ms |
Aceleración máxima de salida |
Objetivo: 0.5 G Límite: Entre 0.25 G y 0.75 G |
Frecuencia |
Objetivo: De 2/3 a 1/3 y, luego, a 1/2 de la frecuencia resonante Alternativa: de 2/3 a 1x y, luego, a 1/2 de la frecuencia resonante |
Paso 3: Asigna constantes entre HAL y la API
En el paso 3, se presentan las asignaciones recomendadas entre las constantes públicas de HAL y las constantes de la API. Si el hardware evaluado en el paso 1 no implementa las constantes de HAL, usa el paso 3 para actualizar los patrones de resguardo descritos en el paso 1 y generar resultados similares. La asignación se realiza con la ayuda de dos modelos predeterminados diferentes:
Modelo discreto (simple)
- La amplitud es la variable clave de este modelo. Cada entidad del HAL representa una amplitud táctil diferente.
- Este modelo es un requisito mínimo necesario para implementar la UX táctil básica.
- Una UX táctil más avanzada requiere hardware y un modelo avanzados (modelo continuo).
Modelo continuo (avanzado)
- La textura y la amplitud son las variables clave de este modelo. Cada entidad en el HAL representa diferentes texturas táctiles. El factor de escala (
S
) controla la amplitud de cada entidad de HAL. - Este modelo requiere hardware avanzado. Si los OEMs quieren usar una UX táctil avanzada con
VibrationEffect.Composition
(para aprovechar al máximo las APIs de tecnología táctil más recientes), se recomienda implementar su hardware con este modelo.
- La textura y la amplitud son las variables clave de este modelo. Cada entidad en el HAL representa diferentes texturas táctiles. El factor de escala (
Modelo discreto
Se recomienda asignar todas las constantes públicas proporcionadas en la API con las constantes de HAL adecuadas. Para comenzar este proceso, averigua cuántas formas de onda táctiles con amplitud discreta puede definir el dispositivo en la HAL. Una pregunta específica que se estructura en torno a esa noción se ve de la siguiente manera: ¿Cuántos efectos táctiles de un solo impulso con diferencias de amplitud perceptibles por el ser humano se pueden definir en mi teléfono? La respuesta a esta pregunta determina la asignación.
La definición de constantes de HAL es un proceso que depende del hardware. Por ejemplo, un teléfono de entrada podría tener solo las capacidades de hardware para producir una sola forma de onda táctil. Los dispositivos con componentes de hardware más avanzados producen un rango más amplio de niveles de amplitud discretos y pueden definir varias formas de onda táctiles en el HAL. La asignación de constantes de la API de HAL toma la constante de HAL (con la amplitud media como referencia) y, luego, organiza los efectos más fuertes o más débiles a partir de allí.
Figura 14: Rango constante de HAL por amplitud
Cuando se define la cantidad de constantes de HAL con amplitud discreta, es hora de asignar las constantes de HAL y de la API según la cantidad de constantes de HAL. Este proceso de asignación puede segmentar una sola constante de API de impulso en hasta tres grupos discretos de niveles de amplitud. La forma en que se segmentan las constantes de la API se basa en los principios de la UX para acompañar los eventos de entrada. Para obtener más información, consulta Diseño de UX táctil.
Figura 15: Asignación de constantes de HAL a la API: Modelo discreto
Si tu dispositivo solo admite dos constantes de HAL con amplitudes discretas, considera combinar las constantes de HAL de nivel de amplitud media y alta. Un ejemplo de esta noción en la práctica sería asignar EFFECT_CLICK
y EFFECT_HEAVY_CLICK
a la misma constante de HAL, que sería la constante de HAL de nivel de amplitud media. Si tu dispositivo solo admite una constante de HAL con amplitud discreta, considera combinar los tres niveles en uno.
Modelo continuo
El modelo continuo con escalabilidad de amplitud se puede aplicar para definir constantes de HAL. Se puede aplicar un factor de escala (S
) a las constantes de HAL (por ejemplo, HAL_H0
, HAL_H1
) para producir el HAL ajustado (HAL_H0
× S
). En este caso, el HAL ajustado se asigna para definir constantes de API (HAL_H0
× S1
= H0S1
= EFFECT_TICK
), como se muestra en la figura 16. Con el uso de la escalabilidad de amplitud del modelo continuo, un dispositivo puede almacenar una pequeña cantidad de constantes de HAL con texturas distintivas y agregar variaciones de amplitud ajustando el factor de escala (S
). Los fabricantes de dispositivos pueden definir la cantidad de constantes de HAL según la cantidad de texturas táctiles diferentes que quieran proporcionar.
Figura 16: Rango constante de HAL por textura (HAL_H0) y escala de amplitud (S)
Figura 17: Asignación de constantes de HAL a la API: Modelo continuo
En el modelo continuo, diferentes constantes de HAL representan diferentes texturas táctiles en lugar de diferentes amplitudes. El factor de escala (S
) puede configurar la amplitud. Sin embargo, como la percepción de la textura (por ejemplo, la nitidez) se relaciona con la percepción de la duración y la amplitud, se recomienda combinar la textura y el factor de escala (en el proceso de diseño de la asignación de la API de HAL).
En la Figura 18, se ilustra la asignación constante aumentando la variación de un HAL a muchas constantes de API con escalabilidad de amplitud.
Figura 18: Aumenta la variación con la escalabilidad de amplitud
Para todas las constantes de API escalables, como PRIMITIVE_TICK
y PRIMITIVE_CLICK
en VibrationEffect.Composition
, el nivel de energía de la constante de API depende del parámetro float scale
cuando la constante de API se declara a través de addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
y PRIMITIVE_CLICK
se pueden diseñar con una distinción clara mediante el uso de diferentes constantes de HAL. Este enfoque se recomienda si
deseas agregar variación a la textura.
Paso 4: Evalúa el hardware
La evaluación de hardware implica definir tres efectos táctiles, etiquetados como Efectos 1, 2 y 3 para esta evaluación específica.
Efecto 1: Constantes táctiles cortas predefinidas
La constante VibrationEffect.EFFECT_CLICK
es el efecto del modelo de referencia o el denominador común en la asignación de HAL a la API que se proporciona en el paso 2. Se asigna con el efecto más usado, HapticFeedbackConstants.KEYBOARD_PRESS
.
La evaluación de este efecto ayuda a determinar el nivel de preparación de tu dispositivo de destino para la realidad táctil clara.
Efecto 2: Efecto táctil personalizado corto
La constante VibrationEffect.createOneShot(20,255)
es para efectos táctiles personalizados. Para impulsos personalizados cortos y únicos,
el umbral máximo recomendado para definir la duración es de 20 ms. No se recomienda un solo impulso de más de 20 ms, ya que se percibe como una vibración continua.
Figura 19: Efecto táctil personalizado corto
Efecto 3: Efecto táctil personalizado largo con variación de amplitud
La constante VibrationEffect.createWaveform(timings[], amplitudes[], int
repeat)
es para efectos personalizados largos con variación de amplitud. La capacidad de producir amplitudes variables para efectos táctiles personalizados es uno de los indicadores para evaluar las capacidades del dispositivo para táctiles enriquecidos. Los timings []
y amplitudes []
recomendados son {500, 500}
y {128, 255}
, respectivamente, que presentan una tendencia creciente de amplitud del 50% al 100%, con una tasa de muestreo de 500 ms.
Figura 20: Efecto táctil personalizado largo con variación de amplitud
Para verificar las capacidades de hardware del control de amplitud del efecto 3, usa el método Vibrator.hasAmplitudeControl()
. El resultado debe ser true
para ejecutar VibrationEffect.createWaveform
con una amplitud variable según lo previsto.
Figura 21: Evaluación del sujeto del efecto táctil 1, 2 y 3
Realiza una evaluación subjetiva
Para realizar una verificación de coherencia rápida, primero realiza una evaluación subjetiva. El objetivo de la evaluación subjetiva es observar la amplitud de los efectos táctiles para determinar si el dispositivo puede generar respuestas táctiles con amplitudes perceptibles por el ser humano.
Una pregunta específica estructurada en torno a esta noción se ve de la siguiente manera: ¿Puede el dispositivo producir efectos táctiles perceptibles para los usuarios como se espera? Responder esta pregunta te ayuda a evitar errores de tecnología táctil, incluidas las tecnologías táctiles imperceptibles que los usuarios no pueden sentir o las tecnologías táctiles no deseadas en las que las formas de onda no producen patrones como se espera.
Realiza una evaluación avanzada
Se recomienda realizar evaluaciones de calidad avanzadas. Las evaluaciones de calidad avanzadas caracterizan los atributos cuantificables de los efectos táctiles para implementar táctil de calidad. Cuando termines, los fabricantes de dispositivos deberían poder diagnosticar el estado táctil actual, lo que significa que pueden establecer objetivos para mejorar la calidad general. Consulta Evaluación de hardware.