vibrate method

  1. @override
Future<VibrationResult> vibrate({
  1. required Duration duration,
  2. int? amplitude,
  3. required VibrationUsage usage,
})
override

Triggers a simple vibration with optional amplitude and usage.

Implementation

@override
Future<VibrationResult> vibrate({
  required Duration duration,
  int? amplitude,
  required VibrationUsage usage,
}) async {
  try {
    final res = await methodChannel
        .invokeMapMethod<String, dynamic>('vibrate', <String, dynamic>{
      'duration': duration.inMilliseconds,
      'amplitude': amplitude,
      'usage': usage.name,
    });
    if (res != null) {
      return VibrationResult.fromMap(res);
    }
  } on PlatformException catch (e) {
    return VibrationResult(
      status: VibrationStatus.platformError,
      message: e.message ?? e.details?.toString() ?? 'Platform exception occurred',
    );
  } catch (e) {
    return VibrationResult(
      status: VibrationStatus.platformError,
      message: e.toString(),
    );
  }
  return const VibrationResult(
    status: VibrationStatus.platformError,
    message: 'Empty response from platform',
  );
}