vibration 3.1.3 copy "vibration: ^3.1.3" to clipboard
vibration: ^3.1.3 copied to clipboard

A plugin for handling Vibration API on iOS, Android, web and OpenHarmony.

Vibration #

Build Status

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

Getting Started #

  1. Add vibration to the dependencies section of pubspec.yaml.

    dependencies:
      vibration: ^3.1.3
    
    copied to clipboard
  2. Import package:

    import 'package:vibration/vibration.dart';
    
    copied to clipboard

Methods #

hasVibrator #

Check if the target device has vibration capabilities. Not required when using other methods.

if (await Vibration.hasVibrator()) {
    Vibration.vibrate();
}
copied to clipboard

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);
}
copied to clipboard

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();
}
copied to clipboard

vibrate #

Method Arguments

  • duration: Duration of the vibration in milliseconds. Default is 500ms.
  • pattern: List of integers representing the vibration pattern. Alternates between wait and vibrate durations.
  • repeat: Index in the pattern at which to repeat, or -1 for no repeat. Default is -1.
  • intensities: List of integers representing the vibration intensities for each segment in the pattern.
  • amplitude: Amplitude of the vibration. Range is 1 to 255. Default is -1 (use platform default).
  • sharpness: Sharpness of the vibration. iOS only. Range is 0.0 to 1.0. Default is 0.5.
  • preset: Predefined vibration preset. Overrides other parameters if provided.

With specific duration (for example, 1 second):

Vibration.vibrate(duration: 1000);
copied to clipboard

Default duration is 500ms.

With specific duration and specific amplitude (if supported):

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

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

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

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]);
copied to clipboard

With vibration presets:

You can use predefined vibration presets for common use cases.

Vibration.vibrate(preset: VibrationPreset.alarm);
copied to clipboard

Available presets:

  • VibrationPreset.alarm
  • VibrationPreset.notification
  • VibrationPreset.heartbeat
  • VibrationPreset.singleShortBuzz
  • VibrationPreset.doubleBuzz
  • VibrationPreset.tripleBuzz
  • VibrationPreset.longAlarmBuzz
  • VibrationPreset.pulseWave
  • VibrationPreset.progressiveBuzz
  • VibrationPreset.rhythmicBuzz
  • VibrationPreset.gentleReminder
  • VibrationPreset.quickSuccessAlert
  • VibrationPreset.zigZagAlert
  • VibrationPreset.softPulse
  • VibrationPreset.emergencyAlert
  • VibrationPreset.heartbeatVibration
  • VibrationPreset.countdownTimerAlert
  • VibrationPreset.rapidTapFeedback
  • VibrationPreset.dramaticNotification
  • VibrationPreset.urgentBuzzWave

cancel #

Stop ongoing vibration.

Vibration.cancel();
copied to clipboard

Android #

The VIBRATE permission is required in AndroidManifest.xml.

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

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.

OpenHarmony #

The OpenHarmony implementation of vibration.

vibration 在 OpenHarmony 平台的实现。

Add the following permission settings to your project's module.json5 file.

在你的项目的 module.json5 文件中增加以下权限设置。

    "requestPermissions": [
         {"name" :  "ohos.permission.VIBRATE"},
    ]
copied to clipboard

Usage #

dependencies:
  vibration: any
  vibration_ohos: any
copied to clipboard

vibrateEffect and vibrateAttribute are only exist in VibrationOhos.

 (VibrationPlatform.instance as VibrationOhos).vibrate(
   vibrateEffect: const VibratePreset(count: 100),
   vibrateAttribute: const VibrateAttribute(
     usage: 'alarm',
   ),
 );
copied to clipboard
813
likes
160
points
268k
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.08 - 2025.03.23

A plugin for handling Vibration API on iOS, Android, web and OpenHarmony.

Repository (GitHub)

Documentation

API reference

License

BSD-2-Clause (license)

Dependencies

flutter, plugin_platform_interface, vibration_platform_interface

More

Packages that depend on vibration