A plugin for handling Vibration API on iOS and Android devices

  API, Plugin, plugin

Vibration

A plugin for handling Vibration API on iOS and Android devices. API docs.

Getting Started 

  1. Add vibration to the dependencies section of pubspec.yaml. dependencies: vibration: ^1.7.1
  2. Import package: import 'package:vibration/vibration.dart';

Methods 

hasVibrator 

Check if the target device has vibration capabilities.

if (await Vibration.hasVibrator()) {
    Vibration.vibrate();
}

hasAmplitudeControl 

Check if the target device has the ability to control the vibration amplitude, introduced in Android 8.0 Oreo – false for all earlier API levels.

if (await Vibration.hasAmplitudeControl()) {
    Vibration.vibrate(amplitude: 128);
}

hasCustomVibrationsSupport 

Check if the device is able to vibrate with a custom duration, pattern or intensity. May return true even if the device has no vibrator (if you want to check whether the device has a vibrator, see hasVibrator).

if (await Vibration.hasCustomVibrationsSupport()) {
    Vibration.vibrate(duration: 1000);
} else {
    Vibration.vibrate();
    await Future.delayed(Duration(milliseconds: 500));
    Vibration.vibrate();
}

vibrate 

With specific duration (for example, 1 second):

Vibration.vibrate(duration: 1000);

Default duration is 500ms.

With specific duration and specific amplitude (if supported):

Vibration.vibrate(duration: 1000, amplitude: 128);

With pattern (wait 500ms, vibrate 1s, wait 500ms, vibrate 2s):

Vibration.vibrate(pattern: [500, 1000, 500, 2000]);

With pattern (wait 500ms, vibrate 1s, wait 500ms, vibrate 2s) at varying intensities (1 – min, 255 – max):

Vibration.vibrate(pattern: [500, 1000, 500, 2000], intensities: [1, 255]);

cancel 

Stop ongoing vibration.

Vibration.cancel();

Android 

The VIBRATE permission is required in AndroidManifest.xml.

<uses-permission android:name="android.permission.VIBRATE"/>

Supports vibration with duration and pattern. On Android 8 (Oreo) and above, uses the VibrationEffect class. For the rest of the usage instructions, see Vibrator class documentation.

iOS 

Supports vibration with duration and pattern on CoreHaptics devices. On older devices, the pattern is emulated with 500ms long vibrations. You can check whether the current device has CoreHaptics support using hasCustomVibrationsSupport.

Download Flutter vibration plugin source code on GitHub

https://github.com/benjamindean/flutter_vibration

Check details about the Handle vibration on iOS and Android in Flutter apps on Pub.dev

https://pub.dev/packages/vibration