vibrate static method

Future<void> vibrate({
  1. int duration = 500,
  2. List<int> pattern = const [],
  3. int repeat = -1,
  4. List<int> intensities = const [],
  5. int amplitude = -1,
  6. double sharpness = 0.5,
  7. VibrationPreset? preset,
})

Vibrate with duration at amplitude or pattern at intensities.

The default vibration duration is 500ms. Amplitude is a range from 1 to 255, if supported.

If preset is provided, it overrides other parameters and uses the preset configuration.

Vibration.vibrate(duration: 1000);

if (await Vibration.hasAmplitudeControl()) {
  Vibration.vibrate(duration: 1000, amplitude: 1);
  Vibration.vibrate(duration: 1000, amplitude: 255);
}

Vibration.vibrate(preset: VibrationPreset.quickSuccessAlert);

Implementation

static Future<void> vibrate({
  int duration = 500,
  List<int> pattern = const [],
  int repeat = -1,
  List<int> intensities = const [],
  int amplitude = -1,
  // sharpness is iOS only
  double sharpness = 0.5,
  VibrationPreset? preset,
}) async {
  if (preset != null) {
    final VibrationPresetConfig? vibrationPreset = presets[preset];

    if (vibrationPreset == null) {
      throw ArgumentError('Invalid preset: $preset');
    }

    return VibrationPlatform.instance.vibrate(
      pattern: vibrationPreset.pattern,
      intensities: vibrationPreset.intensities,
    );
  }

  return VibrationPlatform.instance.vibrate(
    duration: duration,
    pattern: pattern,
    repeat: repeat,
    intensities: intensities,
    amplitude: amplitude,
    sharpness: sharpness,
  );
}