Flutter WakeLock - How do i prevent Screen sleep in Flutter

Published February 11, 2022

In this flutter example we will see how to manage prevent screen lock while using the app. Generally mobile screen will go into sleep mode when there is no user event on the device. But when we watch any videos we just wat it and not do any event on the screen, at that time screen will go into sleep. To avoid screen sleep in flutter we will use WakeLock plugin.

This wakelock plugin provides two methods to Enable/Disable screen sleep mode.

To enable the wakelock, we will use Wakelock.enable and to disable it, we will call Wakelock.disable.

Let's write flutter example to prevent screen lock

 

Step 1: Create Flutter application in android studio

Step 2: Add required plugin to pubspec.yaml file

dependencies:
  flutter:
    sdk: flutter

  wakelock:

 

Step 3: Import wakelock in dart file

import 'package:wakelock/wakelock.dart';

 

Step 4: Handle Screen Sleep OFF and ON by below code

MaterialButton(onPressed: (){
  if(SCREEN_ON_OFF==0)
    Wakelock.enable();
  else Wakelock.disable();
},
  child: Text( (SCREEN_ON_OFF==0)?"Sceen Off":"Sceen On"),
)

 

Step 5: Lets run the code

Flutter Prevent Screen Sleep using wakelock

 

Complete code for Prevent screen from sleep in flutter

 

import 'package:flutter/material.dart';
import 'package:wakelock/wakelock.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  int SCREEN_ON_OFF=0;
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(title: Text("Flutter Prevent Screen Sleep"),),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Center(
              child: MaterialButton(
                color: Colors.red,
                onPressed: (){
                setState(() {
                  if(SCREEN_ON_OFF==0)
                    SCREEN_ON_OFF=1;
                      else SCREEN_ON_OFF=0;
                });
                if(SCREEN_ON_OFF==0)
                  Wakelock.enable();
                else Wakelock.disable();
              },
                child: Text( (SCREEN_ON_OFF==0)?"Sceen Off":"Sceen On",style: TextStyle(color: Colors.white),),
              ),
            )
          ],
        ),
      ),
    );
  }
}

 

Article Contributed By :
https://www.rrtutors.com/site_assets/profile/assets/img/avataaars.svg

924 Views