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:
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:
¿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