こんにちわ。今回は無限に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のダウンロード