エキサイト株式会社の@mthiroshiです。 エキサイトホールディングス Advent Calendar 2023の13日目を担当します。
Flutter で画面スリープを無効にする(画面を常時点灯にする)wakelock_plus パッケージについて紹介します。
wakelock_plus とは
wakelock_plus は、画面スリープを無効にするためのパッケージです。 pub.dev
wakelock_plus には、前身となる wakelock というパッケージがあります。 pub.dev
wakelock はメンテナンスされていない様子なので、現在は wakelock_plus の利用が好ましいと思います。
いくつかの issue でも、wakelock_plus
の利用が推奨されています。
github.com
Flutter の画面スリープの無効化について検索すると、 2023年12月時点では wakelock の方が検索結果の上位に出てくるので注意が必要です。
使い方
下記のバージョンで動作検証しました。
wakelock_plus: ^1.1.2
公式のサンプルコードが下記です。
import 'package:wakelock_plus/wakelock_plus.dart'; // ... // The following line will enable the Android and iOS wakelock. WakelockPlus.enable(); // The next line disables the wakelock again. WakelockPlus.disable();
WakelockPlus を static に呼び出して、有効 / 無効を切り替えられます。
特定の画面でのみ画面スリープを無効にしたい場合は、flutter_hooks の useEffect を使って実装できます。
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:wakelock_plus/wakelock_plus.dart'; class DemoScreen extends HookWidget { const DemoScreen({ super.key, }); @override Widget build(BuildContext context) { useEffect( () { WakelockPlus.enable(); return WakelockPlus.disable; }, [], ); return Scaffold( /// 画面の実装 );
終わりに
Flutter で画面のスリープを無効にする wakelock_plus パッケージについて紹介しました。 実装のコード数が少なく、簡単に実現できます。 参考になれば幸いです。
採用アナウンス
エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。長期インターンも歓迎していますので、興味があれば連絡いただければと思います。
募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com