На этой странице приведены рекомендуемые соответствия между общедоступными константами HAL и константами API. Если оцениваемое оборудование не реализует константы HAL, обновите резервные шаблоны, описанные на странице Реализация констант и примитивов, чтобы генерировать похожие выходные данные. Сопоставление выполняется с помощью двух моделей по умолчанию:
Дискретная модель (простая)
- Амплитуда – ключевая переменная этой модели. Каждый объект в HAL представляет отдельную амплитуду вибрации.
- Это минимальное требование для реализации базового тактильного интерфейса.
- Для более продвинутого тактильного интерфейса требуется более совершенное оборудование и модель (непрерывная модель).
Непрерывная модель (расширенные настройки)
- Ключевыми переменными этой модели являются текстура и амплитуда. Каждая сущность в HAL представляет собой определенную тактильную текстуру. Амплитуда каждого объекта HAL контролируется коэффициентом масштабирования (
S). - Для этой модели требуется современное оборудование. Если производители хотят использовать расширенные тактильные эффекты с
VibrationEffect.Composition(для оптимального использования новейших API тактильных эффектов), рекомендуется реализовать их аппаратное обеспечение с помощью этой модели.
- Ключевыми переменными этой модели являются текстура и амплитуда. Каждая сущность в HAL представляет собой определенную тактильную текстуру. Амплитуда каждого объекта HAL контролируется коэффициентом масштабирования (
Дискретная модель
Рекомендуется сопоставить все общедоступные константы, предоставленные в API, с соответствующими константами HAL. Чтобы начать этот процесс, узнайте, сколько форм волны тактильной обратной связи с дискретной амплитудой устройство может определить в HAL. Конкретный вопрос, построенный на этом понятии, выглядит следующим образом: Сколько тактильных эффектов с одним импульсом и различимыми для человека амплитудами можно определить в моем телефоне? Ответ на этот вопрос определяет сопоставление.
Определение констант HAL зависит от аппаратного обеспечения. Например, телефон начального уровня может иметь только аппаратные возможности для создания одной тактильной формы сигнала. Устройства с более продвинутыми аппаратными компонентами поддерживают более широкий диапазон дискретных уровней амплитуды и могут определять несколько форм сигналов тактильной отдачи в HAL. Сопоставление констант HAL-API выполняется на основе константы HAL (с использованием средней амплитуды в качестве базового значения), а затем эффекты с большей или меньшей интенсивностью упорядочиваются относительно нее.
Рисунок 1. Диапазон констант HAL по амплитуде.
После того как вы определили количество констант HAL с дискретной амплитудой, сопоставьте константы HAL и API по количеству констант HAL. В процессе сопоставления постоянная API импульса может быть разделена на три отдельные группы уровней амплитуды. Сегментация констант API основана на принципах UX для сопутствующих событий ввода. Подробнее о тактильной обратной связи в UX-дизайне…
Рисунок 2. Сопоставление констант HAL-API: дискретная модель.
Если ваше устройство поддерживает только две константы HAL с дискретными амплитудами, объедините константы HAL для среднего и высокого уровней амплитуды. Примером такого подхода может быть сопоставление EFFECT_CLICK и EFFECT_HEAVY_CLICK с одной и той же константой HAL, которая будет константой HAL для среднего уровня амплитуды. Если ваше устройство поддерживает только одну константу HAL с дискретной амплитудой, объедините все три уровня в один.
Непрерывная модель
Непрерывную модель с масштабируемостью амплитуды можно использовать для определения констант HAL. К константам HAL (например, HAL_H0, HAL_H1) можно применить коэффициент масштабирования (S), чтобы получить масштабированный HAL (HAL_H0 x S). В этом случае масштабированный HAL сопоставляется с константами API (HAL_H0 x S1 = H0S1 = EFFECT_TICK), как показано на рисунке 3. Благодаря масштабируемости амплитуды в непрерывной модели устройство может хранить небольшое количество констант HAL с разными текстурами и добавлять вариации амплитуды, корректируя коэффициент масштабирования (S). Производители устройств могут определять количество констант HAL в зависимости от того, сколько разных тактильных текстур они хотят предоставить.
Рисунок 3. Постоянный диапазон HAL по текстуре (HAL_H0) и шкале амплитуды (S).
Рисунок 4. Сопоставление констант HAL API: непрерывная модель.
В непрерывной модели разные константы HAL представляют разные тактильные текстуры, а не разные амплитуды. Амплитуду можно настроить с помощью коэффициента масштабирования (S). Однако, поскольку восприятие текстуры (например, резкости) связано с восприятием длительности и амплитуды, рекомендуется комбинировать текстуру и коэффициент масштабирования (в процессе проектирования сопоставления HAL-API).
На рисунке 5 показано сопоставление констант путем увеличения вариации от одной константы HAL до нескольких констант API с масштабируемостью амплитуды.
Рисунок 5. Увеличение вариативности с помощью масштабирования амплитуды.
Для всех масштабируемых констант API, таких как PRIMITIVE_TICK и PRIMITIVE_CLICK в VibrationEffect.Composition, уровень энергопотребления константы API зависит от параметра float scale, когда константа API объявляется через addPrimitive(int primitiveID, float scale,
int delay). PRIMITIVE_TICK и PRIMITIVE_CLICK можно сделать разными, используя разные константы HAL. Этот подход рекомендуется, если вы хотите добавить разнообразия в текстуру.