¿Cómo mantener la pantalla del dispositivo encendida en Android?

En Android , se ve que el tiempo de espera de la pantalla se configurará durante 30 segundos o el usuario lo configurará manualmente en la configuración del sistema, para evitar que se agote la batería. Pero hay casos en los que aplicaciones como cronómetro , lectores de documentos , juegos , etc., necesitan que la pantalla esté siempre despierta. En este artículo se ha demostrado cómo mantener activa la pantalla del dispositivo.

Pasos para mantener la pantalla del dispositivo encendida 

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2: cambia la combinación de colores del tema base de la aplicación

  • Para cambiar los colores del tema de la aplicación base Vaya a la aplicación -> res -> valores -> colores.xml e invoque la siguiente combinación de colores.

XML

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#0f9d58</color>
    <color name="colorPrimaryDark">#006d2d</color>
    <color name="colorAccent">#55cf86</color>
</resources>
  • Consulte la siguiente imagen si no tiene el archivo colors.xml :

Paso 3: trabajar con el archivo activity_main.xml

En el archivo activity_main.xml agregue TextViews para hacer una aplicación como la aplicación de lectura de documentos.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
  
    <!--This layout contains some simple text views-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="64dp"
        android:fontFamily="sans-serif"
        android:gravity="center"
        android:text="GeeksforGeeks"
        android:textColor="@color/colorPrimary"
        android:textSize="32sp" />
  
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:fontFamily="sans-serif"
        android:gravity="center"
        android:text="A Computer Science portal for geeks"
        android:textColor="@color/colorPrimary"
        android:textSize="16sp" />
  
    <View
        android:layout_width="300dp"
        android:layout_height="1dp"
        android:layout_gravity="center"
        android:layout_marginTop="8dp"
        android:background="@android:color/darker_gray" />
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="32dp"
        android:text="About GeeksforGeeks"
        android:textColor="@android:color/black"
        android:textSize="16sp"
        android:textStyle="bold" />
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:text="How many times were you frustrated while looking out for a good collection of programming/algorithm/interview questions? What did you expect and what did you get? This portal has been created to provide well written, well thought and well explained solutions for selected questions."
        android:textColor="@android:color/black"
        android:textSize="16sp" />
  
</LinearLayout>

Se produce la siguiente interfaz de usuario de salida:

output ui

Paso 4: Trabajando para mantener la pantalla del dispositivo activa

Hay dos métodos para implementar la pantalla siempre despierta.

Método 1: invocar el «keepScreenOn» como verdadero 

Se puede mantener activa la pantalla del dispositivo invocando el siguiente atributo en la vista raíz de la aplicación.

android:keepScreenOn = «verdadero»
 

Puede echar un vistazo al siguiente código activity_main.xml :

XML

<?xml version="1.0" encoding="utf-8"?>
  
<!--one needs to focus on the keepScreenOn
    in the root view of the application-->
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
                
    android:keepScreenOn="true"
                
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
  
    <!--This layout contains some simple text views-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="64dp"
        android:fontFamily="sans-serif"
        android:gravity="center"
        android:text="GeeksforGeeks"
        android:textColor="@color/colorPrimary"
        android:textSize="32sp" />
  
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:fontFamily="sans-serif"
        android:gravity="center"
        android:text="A Computer Science portal for geeks"
        android:textColor="@color/colorPrimary"
        android:textSize="16sp" />
  
    <View
        android:layout_width="300dp"
        android:layout_height="1dp"
        android:layout_gravity="center"
        android:layout_marginTop="8dp"
        android:background="@android:color/darker_gray" />
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="32dp"
        android:text="About GeeksforGeeks"
        android:textColor="@android:color/black"
        android:textSize="16sp"
        android:textStyle="bold" />
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:text="How many times were you frustrated while looking out for a good collection of programming/algorithm/interview questions? What did you expect and what did you get? This portal has been created to provide well written, well thought and well explained solutions for selected questions."
        android:textColor="@android:color/black"
        android:textSize="16sp" />
  
</LinearLayout>

Método 2: mantener la pantalla encendida mediante programación

Ahora puede eliminar el atributo android:keepScreenOn=”true” del archivo activity_main.xml y dejar que todo el código permanezca igual e invocar el siguiente código en el archivo MainActivity.java.

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

El código completo se da a continuación.

Java

import androidx.appcompat.app.AppCompatActivity;
  
import android.os.Bundle;
import android.view.WindowManager;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // setting up the flag programmatically so that the 
        // device screen should be always on
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }
}

Producción

La salida se produce como la siguiente imagen (se recomienda probar esta aplicación en un dispositivo Android físico para que pueda ver el resultado si la pantalla de la aplicación está activa o no) y la salida de ambos métodos seguirá siendo la misma:

output

¿Qué método se recomienda?

Ambos métodos son iguales y uno puede usar el que se sienta mejor, pero se recomienda implementar esto mediante programación porque en aplicaciones complejas de Android, los desarrolladores configuran muchas banderas en una actividad particular y se vuelve fácil obtener todas esas banderas y deshabilitarlas y administrarlas manualmente. a ellos.

Publicación traducida automáticamente

Artículo escrito por adityamshidlyali 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 *