Hardware assessment

The hardware assessment delivers quantitative characteristics of three target haptic effects sampled by common methods used to call haptics. At the end of the assessment, performance from each device for each target haptic effect can be applied to the performance map to draw conclusions.

The performance map shows the hardware assessment results from several current Android devices. The goal is to evaluate the target device using a contextually relative comparison (rather than a pass or fail judgement). Specific questions structured around that notion are: Given the price tier and actuator type of my phone, how is the performance compared to my competitors? Do the results meet my expectations? If not, what needs improvement?

Haptic setup

Figure 1. Haptics hardware assessment process overview

The assessment observes the results of three methods in the Android haptic framework.

Effect 1: Predefined short haptic constants

VibrationEffect.EFFECT_CLICK

This constant is the baseline effect or common denominator in the HAL-API mapping provided in Step 2. It's mapped with the most commonly used effect HapticFeedbackConstants.KEYBOARD_PRESS. Assessing this effect helps you determine the readiness of your target device for clear haptics.

Effect 2: Short custom haptic effect

VibrationEffect.createOneShot(20,255)

For short single custom impulses, 20 ms is the recommended maximum threshold to define duration. A single impulse that's longer than 20 ms isn't recommended because it's perceived as a buzzy vibration.

Short Custom Haptic Effect

Figure 2. Short custom haptic effect

Effect 3: Long custom haptic effect with amplitude variation

VibrationEffect.createWaveform(timings[], amplitudes[], int repeat)

The ability to produce varying amplitudes for custom haptic effects is one of the indicators to evaluate the device's capabilities for rich haptics. The recommended timings [ ] and amplitudes [ ] are {500, 500} and {128, 255}, respectively. This presents an increasing trend of amplitude from 50% to 100% with a 500 ms sampling rate.

Amplitude Variation

Figure 3. Long custom haptic effect with amplitude variation

To quickly check the hardware capabilities of amplitude control for Effect 3, try Vibrator.hasAmplitudeControl(). The result has to be true to execute VibrationEffect.createWaveform with varying amplitude as intended.