ocultar - quitar action bar android studio
¿Cómo evito que un dispositivo Android se quede dormido programáticamente? (7)
¿Cómo evito que un dispositivo Android se quede dormido programáticamente?
Desde el shell raíz (por ejemplo, adb shell), puede bloquear con:
echo mylockname >/sys/power/wake_lock
Después de lo cual el dispositivo permanecerá despierto, hasta que lo haga:
echo mylockname >/sys/power/wake_unlock
Con la misma cadena para ''mylockname''.
Tenga en cuenta que esto no evitará que la pantalla se ponga negra, pero evitará que la CPU se quede dormida.
Tenga en cuenta que / sys / power / wake_lock es de lectura-escritura para la radio del usuario (1001) y el sistema de grupo (1000) y, por supuesto, la raíz.
Una referencia está aquí: http://lwn.net/Articles/479841/
Encontré otra solución de trabajo: agregue la siguiente línea a su aplicación en el evento onCreate.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Mi ejemplo del proyecto Cordova se ve así:
package com.apps.demo;
import android.os.Bundle;
import android.view.WindowManager;
import org.apache.cordova.*;
public class ScanManActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
super.loadUrl("http://.com");
}
}
Después de eso, mi aplicación no se iría a dormir mientras estaba abierta. Gracias por el mensaje a xSus.
Establecer banderas en la ventana de actividad como se muestra a continuación
@Override public void onResume() {
super.onResume();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override public void onPause() {
super.onPause();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Lo que @eldarerathis dijo es correcto en todos los aspectos, el bloqueo de activación es la forma correcta de evitar que el dispositivo se quede dormido.
No sé qué debe hacer su aplicación, pero es muy importante que piense en cómo diseñar su aplicación para que no obligue al teléfono a permanecer despierto por más de lo que necesita, o la duración de la batería sufrirá enormemente.
Le diría que es un buen ejemplo de cómo usar AlarmManager
para AlarmManager
eventos y AlarmManager
el teléfono y (su aplicación) para realizar lo que necesita hacer y luego volver a dormir: Alarm Manager (fuente: commonsware.com)
Si solo desea evitar el modo de suspensión en una View
específica, simplemente llame a setKeepScreenOn(true)
en esa View
o establezca la propiedad setKeepScreenOn(true) en true
. Esto evitará que la pantalla se apague mientras la View
está en la pantalla. No se requiere un permiso especial para esto.
Una opción es usar un bloqueo de activación . Ejemplo de los documentos:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
// screen and CPU will stay awake during this section
wl.release();
También hay una tabla en esta página que describe los diferentes tipos de wakelocks.
Tenga en cuenta que se debe tener precaución al usar bloqueos por activación. Asegúrese de release()
siempre release()
el bloqueo cuando haya terminado con él (o no en primer plano). De lo contrario, su aplicación podría causar una seria pérdida de batería y el uso de la CPU.
La documentación también contiene una página útil que describe diferentes enfoques para mantener un dispositivo despierto y cuándo puede elegir usar uno. Si "evitar que el dispositivo se quede dormido" solo se refiere a la pantalla (y no mantiene la CPU activa), entonces un bloqueo de activación probablemente sea más de lo que necesita.
También debe asegurarse de tener el permiso WAKE_LOCK configurado en su manifiesto para usar este método.
android:keepScreenOn="true"
podría ser una mejor opción para tener desde el diseño XML.
Más información: https://developer.android.com/training/scheduling/wakelock.html