/flutter_vibration

Handle vibration on iOS and Android in Flutter apps

Primary LanguageDartBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Vibration

Build Status

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.2.4
  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);
}

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

Only supports singular vibrations with 500ms duration.