3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Flutter] 無限にvibrationを鳴らしてみようぜ

Last updated at Posted at 2023-05-28

こんにちわ。今回は無限にvibrationを鳴らす方法を共有していこうと思います。
ある機能と組み合わせることでずっとvibrationを鳴らせるようにします。

↓こちらのPackageを使用します。

1、vibrationの導入

 dependencies:
  #適宜、最新のものを入れてください。
   vibration: ^1.7.5

Androidの導入

以下の記載をandroid/app/src//AndroidManifest.xml にしてください。

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

iOSの導入

特になさそうです。

2、Timerを使って実装

Timer? timer;

@override
  void initState() {
    super.initState();
    //初期化をする。 ここは初期化するだけだからどんな記載でもOK
    timer = Timer.periodic(
      const Duration(seconds: 1),
      (Timer timer) => timer.cancel(),
    );
  }

void vibration() {
  timer?.cancel();
  // 第一引数:繰り返す間隔の時間を設定
  timer = Timer.periodic(const Duration(seconds: 1), (Timer timer) {
    //バイブレーションを鳴らす。
    Vibration.vibrate(duration: 1000);
  });
}

解説

今回使用した技術として

  • vibration
  • Timer

を使用しました。

vibrationだけ使うと、一度だけのバイブレーションになってしまいます。そのため、繰り返し読んであげる必要があります。そのために使用したものがTimerでした。

Timerを使うことで、1秒ごとに処理を呼べるようにしています。それによって、以下の処理になります。

バイブレーションがなる 
↓(1秒後)
バイブレーションがなる
↓(1秒後)
バイブレーションがなる
↓(1秒後)
バイブレーションがなる
↓(1秒後)

3、止める方法

こちらは簡単で、Timerを止めるだけでOKです。


void stop() {
 timer?.cancel();
}

最後に

Timerを使うだけで色々なことが無限できそうですね。おもしろそう。

アプリの紹介

アプリ名

「寝過ごし防止」

アプリの概要

  • 電車に乗っているときに、寝過ごしを防ぐことができるアプリ
  • 指定した時間になるとバイブレーションが無限になります。
  • 音がしないため、自分だけが気づくことができます。

iOSのダウンロード

Androidのダウンロード

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?