Aleteo – Wakelock

El paquete Wakelock en Flutter se usa para mantener la pantalla activa mientras se usa. Se puede ajustar según los requisitos (cuánto tiempo permanecer despierto). Estas son cosas muy simples que mejoran la calidad de la aplicación y aumentan la facilidad de uso de la misma.

En este artículo, exploraremos el proceso de mantener activa la pantalla del móvil mientras no se usa la aplicación. Para hacerlo, construiremos una aplicación simple con dos botones, a saber:

  • habilitar wakelock: evitará que la pantalla del teléfono se bloquee independientemente de cuánto tiempo permanezca así.
  • deshabilitar wakelock: deshabilitará la funcionalidad de wakelock de la aplicación.

Ahora construyamos la aplicación. Para hacerlo, siga los siguientes pasos:

  • Agregue la dependencia al archivo pubspec.yaml
  • Importe la dependencia al archivo main.dart
  • Cree un Statefulwidget para darle una estructura simple a la aplicación
  • Añadir OutlineButton al cuerpo de la aplicación
  • Asignar acciones a los botones

Ahora analicemos los pasos en detalle.

Agregar la dependencia:

Dentro del atributo de dependencias del archivo pubspec.yaml, agregue la dependencia de wakelock como se muestra a continuación:

dependency

Importación de la dependencia:

Para importar la dependencia de wakelock al archivo main.dart , use lo siguiente:

import 'package:wakelock/wakelock.dart';

Creación de una estructura de aplicación:

El StatefulWidget se puede usar para dar una estructura simple a la aplicación como se muestra a continuación:

Dart

class WakelockExampleApp extends StatefulWidget {
  @override
  _WakelockExampleAppState createState() => _WakelockExampleAppState();
}
  
class _WakelockExampleAppState extends State<WakelockExampleApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('GeeksForGeeks'),
          backgroundColor: Colors.green,
        ),
}

Agregar botones:

Una de las formas de agregar botones en una aplicación es usar el widget OutlineButton incorporado en flutter. Estos son simples de implementar y, como se discutió anteriormente, agregaremos dos botones al cuerpo de la aplicación, a saber: habilitar wakelock y deshabilitar wakelock como se muestra a continuación:

Dart

body: Center(
         child: Column(
           mainAxisAlignment: MainAxisAlignment.spaceEvenly,
           children: <Widget>[
             const Spacer(
               flex: 3,
             ),
             OutlineButton(
               onPressed: () {
                 setState(() {
                   Wakelock.enable();
                 });
               },
               child: const Text('enable wakelock'),
             ),
             const Spacer(),
             OutlineButton(
               onPressed: () {
                 setState(() {
                   Wakelock.disable();
                 });
               },
               child: const Text('disable wakelock'),
             ),

Asignación de acciones a los botones:

Aquí usaremos un FutureBuilder simple para asignar acciones a los botones. El primer botón (es decir, habilitar wakelock) como sugiere el nombre mantendrá la pantalla activa y el último (es decir, deshabilitar wakelock) deshabilitará la funcionalidad de wakelock. Eso se puede hacer usando lo siguiente:

Dart

FutureBuilder(
                future: Wakelock.enabled,
                builder: (context, AsyncSnapshot<bool> snapshot) {
                  if (!snapshot.hasData) {
                    return Container();
                  }
  
                  return Text('The wakelock is currently '
                      '${snapshot.data ? 'enabled' : 'disabled'}.');
                },
              ),
              const Spacer(
                flex: 3,
              ),

Código fuente completo:

Dart

import 'package:flutter/material.dart';
import 'package:wakelock/wakelock.dart';
  
void main() {
  runApp(WakelockExampleApp());
}
  
class WakelockExampleApp extends StatefulWidget {
  @override
  _WakelockExampleAppState createState() => _WakelockExampleAppState();
}
  
class _WakelockExampleAppState extends State<WakelockExampleApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('GeeksForGeeks'),
          backgroundColor: Colors.green,
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: <Widget>[
              const Spacer(
                flex: 3,
              ),
              OutlineButton(
                onPressed: () {
                  setState(() {
                    Wakelock.enable();
                  });
                },
                child: const Text('enable wakelock'),
              ),
              const Spacer(),
              OutlineButton(
                onPressed: () {
                  setState(() {
                    Wakelock.disable();
                  });
                },
                child: const Text('disable wakelock'),
              ),
              const Spacer(
                flex: 2,
              ),
              FutureBuilder(
                future: Wakelock.enabled,
                builder: (context, AsyncSnapshot<bool> snapshot) {
                  if (!snapshot.hasData) {
                    return Container();
                  }
  
                  return Text('The wakelock is currently '
                      '${snapshot.data ? 'enabled' : 'disabled'}.');
                },
              ),
              const Spacer(
                flex: 3,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Producción:

wakelock UI

Dado que no es posible mostrar la salida de ninguna forma a menos que lo pruebe usted mismo, use el código fuente anterior y pruébelo usted mismo. El resultado anterior muestra solo la interfaz de usuario básica de la aplicación que hemos creado.

Publicación traducida automáticamente

Artículo escrito por ddeevviissaavviittaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *