Esta página apresenta os mapeamentos recomendados entre constantes públicas do HAL e constantes da API. Se o hardware avaliado não implementar as constantes HAL, atualize os padrões de fallback descritos na página Implementar constantes e primitivos para gerar saídas semelhantes. O mapeamento é auxiliado por dois modelos padrão diferentes:
Modelo discreto (simples)
- A amplitude é a variável principal desse modelo. Cada entidade no HAL representa uma amplitude tátil diferente.
- Esse modelo é um requisito mínimo necessário para implementar a UX táctil básica.
- Uma UX háptica mais avançada requer hardware e um modelo avançados (modelo contínuo).
Modelo contínuo (avançado)
- Textura e amplitude são as principais variáveis desse modelo. Cada entidade
no HAL representa diferentes texturas táteis. A amplitude de cada
entidade HAL é controlada pelo fator de escala (
S
). - Esse modelo requer hardware avançado. Se os OEMs quiserem usar uma UX háptica
avançada com
VibrationEffect.Composition
(para aproveitar melhor as APIs de háptica mais recentes), é recomendável implementar o hardware usando esse modelo.
- Textura e amplitude são as principais variáveis desse modelo. Cada entidade
no HAL representa diferentes texturas táteis. A amplitude de cada
entidade HAL é controlada pelo fator de escala (
Modelo discreto
É recomendável mapear todas as constantes públicas fornecidas na API com constantes HAL adequadas. Para iniciar esse processo, descubra quantas formas de onda táteis com amplitude discreta o dispositivo pode definir no HAL. Uma pergunta específica estruturada em torno dessa noção é mais ou menos assim: Quantos efeitos hápticos de impulso único com diferenças de amplitude perceptíveis pelo ser humano podem ser definidos no meu smartphone? A resposta a essa pergunta determina o mapeamento.
A definição de constantes do HAL é um processo dependente do hardware. Por exemplo, um smartphone básico pode ter apenas os recursos de hardware para produzir uma única forma de onda háptica. Dispositivos com componentes de hardware mais avançados produzem uma gama mais ampla de níveis de amplitude discretos e podem definir várias formas de onda táteis na HAL. O mapeamento de constantes da API HAL usa a constante HAL (usando a amplitude média como referência) e organiza efeitos mais fortes ou mais fracos a partir daí.
Figura 14. Faixa constante de HAL por amplitude
Quando o número de constantes HAL com amplitude discreta é definido, é hora de mapear as constantes HAL e API pelo número de constantes HAL. Esse processo de mapeamento pode segmentar uma única constante da API de impulso em até três grupos discretos de níveis de amplitude. A forma como as constantes da API são segmentadas é baseada em princípios de UX para acompanhar eventos de entrada. Para mais informações, consulte Design de UX de retorno tátil.
Figura 15. Mapeamento de constante HAL-API: modelo discreto
Se o dispositivo oferecer suporte apenas a duas constantes HAL com amplitudes discretas,
considere mesclar as constantes HAL de nível de amplitude Média e Alta. Um exemplo dessa noção na prática seria mapear EFFECT_CLICK
e EFFECT_HEAVY_CLICK
para a mesma constante HAL, que seria a constante HAL do nível de amplitude média. Se o dispositivo oferecer suporte apenas a uma constante HAL com amplitude
discreta, considere mesclar os três níveis em um.
Modelo contínuo
O modelo contínuo com escalonamento de amplitude pode ser aplicado para definir constantes
HAL. Um fator de escala (S
) pode ser aplicado às constantes HAL (por
exemplo, HAL_H0
, HAL_H1
) para produzir o HAL dimensionado (HAL_H0
x S
). Nesse
caso, o HAL dimensionado é mapeado para definir constantes da API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
), conforme mostrado na Figura 16. Ao usar a escalabilidade de amplitude do
modelo contínuo, um dispositivo pode armazenar um pequeno número de constantes HAL com
texturas distintas e adicionar variações de amplitude ajustando o fator de escala
(S
). Os fabricantes de dispositivos podem definir o número de constantes HAL com base no número
de texturas táteis diferentes que querem oferecer.
Figura 16. Faixa de constante HAL por textura (HAL_H0) e escala de amplitude (S)
Figura 17. Mapeamento de constantes da API HAL: modelo contínuo
No modelo contínuo, diferentes constantes HAL representam diferentes
texturas hápticas em vez de diferentes amplitudes. O fator de escala (S
) pode
configurar a amplitude. No entanto, como a percepção da textura (por
exemplo, nitidez) está relacionada à percepção da duração e da amplitude,
é recomendável combinar a textura e o fator de escala (no processo de design do mapeamento
HAL-API).
A Figura 18 ilustra o mapeamento constante aumentando a variação de um HAL para muitas constantes de API com escalonamento de amplitude.
Figura 18. Como aumentar a variação com a escalonabilidade de amplitude
Para todas as constantes de API escalonáveis, como PRIMITIVE_TICK
e PRIMITIVE_CLICK
em
VibrationEffect.Composition
,
o nível de energia da constante da API depende do parâmetro float scale
quando
a constante da API é declarada por addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
e PRIMITIVE_CLICK
podem ser projetados com uma distinção
clara usando diferentes constantes do HAL. Essa abordagem é recomendada se
você quiser adicionar variação à textura.