studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android

para - manual de programacion android pdf



Pantalla de fuerza activada (3)

¿Cómo fuerzo la pantalla para que permanezca activa y no se apague mientras mi aplicación se está ejecutando?


POR FAVOR, NO UTILICE UN BLOQUEO DESPERTADOR

Esto requiere que otorgue a su aplicación un permiso adicional, y es muy fácil introducir errores donde accidentalmente permanece sosteniendo el bloqueo de activación y así dejar la pantalla encendida.

Es mucho mejor utilizar el indicador de ventana FLAG_KEEP_SCREEN_ON , que puede habilitar en la ventana de su actividad en su onCreate() esta manera:

@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }

Esto asegurará que la pantalla permanezca encendida mientras su ventana esté en primer plano, y solo mientras esté en primer plano. Simplifica en gran medida este caso de uso común, lo que elimina cualquier malabares que deba hacer a medida que la aplicación realiza la transición entre estados.


¡Esta pregunta ya tiene una gran respuesta por @hackbod!

¡Estoy respondiendo esta pregunta con dos soluciones adicionales!

Solución existente:

@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }

Soluciones adicionales:

podemos usar keepScreenOn

1. implementation usando setKeepScreenOn() in java code

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // or any View (in case generated programmatically ) View v = getLayoutInflater().inflate(R.layout.driver_home, null); v.setKeepScreenOn(true); setContentView(v); }

Documentos http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)

2. Agregar keepScreenOn al xml layout

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:keepScreenOn="true" >

Documentos http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn

Nota (Algunos puntos útiles):

1. No importa que keepScreenOn se use en Main/Root/Parent View se puede usar con cualquier child view Funciona igual que funciona en Parent view

2. La cuestión de solo la cosa es que View''s Visibility must be visible lo contrario, ¡no funcionará!


Otra solución es agregar android:keepScreenOn="true" ( documentation ) a las vistas que necesitan mantener la pantalla encendida.

Permite un control un poco más granular en términos de qué vistas permanecen y cuáles no. Incluso puede hacer referencia a una configuración desde un archivo de recursos de esta manera.