tiempo studio siempre samsung que para pantalla mira mientras mantener manten espera encendida celular carga aplicacion apague android

android - studio - ¿Cómo mantengo la pantalla encendida en mi aplicación?



pantalla siempre encendida j7 (12)

¡Muchas respuestas ya existen aquí! Estoy respondiendo esta pregunta con soluciones adicionales y confiables:

El uso de PowerManager.WakeLock no es una solución tan confiable, ya que la aplicación requiere permisos adicionales.

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

Además, si permanece accidentalmente sosteniendo el bloqueo de activación, puede dejar la pantalla encendida.

Por lo tanto, recomiendo no usar la solución PowerManager.WakeLock . En lugar de esto, use cualquiera de las siguientes soluciones:

Primero:

Podemos usar getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); en onCreate()

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

Segundo:

podemos usar keepScreenOn

1. implementación usando setKeepScreenOn() en código java:

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

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

2. Agregar keepScreenOn al diseño xml

<?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

Notas (algunos puntos útiles):

  1. No importa que keepScreenOn se use en una vista principal / raíz / principal. Se puede usar con cualquier vista secundaria y funcionará de la misma manera que funciona en una vista principal.
  2. Lo único que importa es que la visibilidad de la vista debe ser visible. ¡De lo contrario, no funcionará!

Esta pregunta ya tiene una respuesta aquí:

Para mi aplicación de Android, nunca quiero que el teléfono se bloquee o que la luz de fondo se apague


Agregar android:keepScreenOn="true" en el XML de la (s) actividad (es) en la que desea mantener la pantalla es la mejor opción. Agregue esa línea al diseño principal de la (s) actividad (es).

Algo como esto

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > ... </LinearLayout>


Agregue una línea de código después de setContentView () en onCreate ()

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_flag); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }


Echa un vistazo a esta discusión Force Screen On

hackbod tiene una gran respuesta.


En este punto, el método

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); this.mWakeLock.acquire();

es obsoleto.

Debería usar getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); y getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


Hay varias formas en que puede hacerlo:

Solución 1:

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

Solución 2:

En el archivo activity_main.xml, simplemente agregue:

<android:KeepScreenOn="true"/>

Mi consejo: por favor no use WakeLock. Si lo usa, debe definir permisos adicionales y, en general, esto es útil en el entorno de desarrollo de la CPU.

Además, asegúrese de apagar la pantalla mientras cierra la actividad. Puedes hacerlo de esta manera:

public void onDestry() { getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }


Necesita usar Power Manager para adquirir un bloqueo de activación en su aplicación.

Lo más probable es que estés interesado en un FULL_WAKE_LOCK :

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag"); wl.acquire(); .... wl.release();


No es necesario agregar permisos y hacer trucos. Simplemente use el texto a continuación en su diseño principal.

android:keepScreenOn="true"



Utilice la clase PowerManager.WakeLock para realizar esto. Vea el siguiente código:

import android.os.PowerManager; public class MyActivity extends Activity { protected PowerManager.WakeLock mWakeLock; /** Called when the activity is first created. */ @Override public void onCreate(final Bundle icicle) { setContentView(R.layout.main); /* This code together with the one in onDestroy() * will make the screen be always on until this Activity gets destroyed. */ final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); this.mWakeLock.acquire(); } @Override public void onDestroy() { this.mWakeLock.release(); super.onDestroy(); } }

Utilice el siguiente permiso en el archivo de manifiesto:

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

Espero que esto solucione tu problema...:)


No use Wake Lock.

It requires permission and other stuff and may cause error if you forget to set it in right time.

La forma más fácil es usar el siguiente código cuando quieras mantener tu pantalla encendida.

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

Una adición a la respuesta si desea eliminar o finalizar keep_Screen_on

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

también puedes ver here ...

Y the best and easiest way ... Usar android:keepScreenOn="true" en la raíz de diseño de su actividad hace lo mismo sin código adicional. Pero lo mantendrá en Keep_Scree_on State ..

Puede variar según su demanda. developer.android.com/training/scheduling/wakelock.html


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

getWindow es un método definido para actividades, y no requerirá que primero encuentres una View .