tiempo studio sirve samsung salvapantallas reloj quitar que protector para pantalla notificaciones movil espera como bloqueo app activar android

studio - protector de pantalla reloj para android



Android desactiva el tiempo de espera de la pantalla mientras se ejecuta la aplicaciĆ³n (11)

En una Vista, en mi caso una subclase SurfaceView, puede configurar la pantalla siempre encendida. Quería que la pantalla permaneciera encendida mientras esta vista todavía estaba dibujando cosas.

public class MyCoolSurfaceView extends SurfaceView { @Override protected void onAttachedToWindow (){ super.onAttachedToWindow(); this.setKeepScreenOn(true); } @Override protected void onDetachedFromWindow(){ super.onDetachedFromWindow(); this.setKeepScreenOn(false); }

¿Hay alguna manera de desactivar el protector de pantalla mientras mi aplicación se está ejecutando?

La atenuación de la pantalla es lo que quiero decir.



Esto se puede hacer adquiriendo un Wake Lock.

No lo probé yo mismo, pero here hay un pequeño tutorial sobre esto.


Pon esto en onStart

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "no sleep"); wakeLock.acquire();

Y esto a ti manifiesta

<uses-permission android:name="android.permission.WAKE_LOCK" />

No olvides

wakeLock.release();

en OnStop


Quieres usar algo como esto:

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


Simple, agregue la línea debajo de su MainActivity y su aplicación nunca apague las luces.

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


Solía:

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

para desactivar el tiempo de espera de la pantalla y

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

para volver a habilitarlo.


También hay una forma XML que Google recomienda:

<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:keepScreenOn="true">

Ver las diapositivas de Google - Diapositiva 16.

"Wakelocks es costoso si se olvida (...) Considera usar android: keepScreenOn para garantizar la corrección"


esta es la mejor manera de resolver esto

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



procedure SetSleep(aEnable:Boolean); var vFlags: integer; begin vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_TURN_SCREEN_ON or TJWindowManager_LayoutParams.JavaClass.FLAG_DISMISS_KEYGUARD or TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED or TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON; if aEnable then begin CallInUIThread ( // uses FMX.Helpers.Android procedure begin TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags); end ); end else CallInUIThread ( procedure begin TAndroidHelper.Activity.getWindow.clearFlags (vFlags); end ); end;