vibration_harmonyos 0.0.1 copy "vibration_harmonyos: ^0.0.1" to clipboard
vibration_harmonyos: ^0.0.1 copied to clipboard

HarmonyOS implementation of the vibration plugin.

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'package:vibration/vibration.dart';
import 'package:vibration_harmonyos/vibration_harmonyos.dart';

void main() => runApp(const App());

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(title: const Text('Vibration Plugin example app')), body: Center(child: HomePage())));
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Column(children: [
      ElevatedButton(
          child: const Text('Vibrate for default 500ms'),
          onPressed: () {
            Vibration.vibrate();
          }),
      ElevatedButton(
          child: const Text('Vibrate for 1000ms'),
          onPressed: () {
            Vibration.vibrate(duration: 1000);
          }),
      if (isHarmonyOS) ...[
        ElevatedButton(
            child: const Text('Vibrate with VibratePreset'),
            onPressed: () {
              (VibrationPlatform.instance as VibrationHarmonyOS).vibrate(
                  vibrateEffect: const VibratePreset(count: 100),
                  vibrateAttribute: const VibrateAttribute(usage: 'alarm'));
            }),
        ElevatedButton(
            child: const Text('Vibrate  with custom haptic_file'),
            onPressed: () {
              rootBundle.load('assets/haptic_file.json').then((data) {
                (VibrationPlatform.instance as VibrationHarmonyOS).vibrate(
                    vibrateEffect: VibrateFromFile(hapticFd: HapticFileDescriptor(data: data.buffer.asUint8List())),
                    vibrateAttribute: const VibrateAttribute(usage: 'alarm'));
              });
            })
      ] else ...[
        ElevatedButton(
            child: const Text('Vibrate with pattern'),
            onPressed: () {
              const snackBar = SnackBar(
                  content: Text(
                      'Pattern: wait 0.5s, vibrate 1s, wait 0.5s, vibrate 2s, wait 0.5s, vibrate 3s, wait 0.5s, vibrate 0.5s'));
              ScaffoldMessenger.of(context).showSnackBar(snackBar);
              Vibration.vibrate(pattern: [500, 1000, 500, 2000, 500, 3000, 500, 500]);
            }),
        ElevatedButton(
            child: const Text('Vibrate with pattern and amplitude'),
            onPressed: () {
              const snackBar = SnackBar(
                  content: Text(
                'Pattern: wait 0.5s, vibrate 1s, wait 0.5s, vibrate 2s, wait 0.5s, vibrate 3s, wait 0.5s, vibrate 0.5s',
              ));
              ScaffoldMessenger.of(context).showSnackBar(snackBar);
              Vibration.vibrate(
                  pattern: [500, 1000, 500, 2000, 500, 3000, 500, 500], intensities: [0, 128, 0, 255, 0, 64, 0, 255]);
            }),
      ]
    ]);
  }
}

bool isHarmonyOS = defaultTargetPlatform.name == 'ohos';
0
likes
130
points
2
downloads

Publisher

unverified uploader

Weekly Downloads

HarmonyOS implementation of the vibration plugin.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

device_info_plus_harmonyos, flutter, vibration_platform_interface

More

Packages that depend on vibration_harmonyos

Packages that implement vibration_harmonyos