2010-04-05 15 views

Respuesta

3

Si usted tiene un servicio que activa que puede atrapar a estos eventos con

registerReceiver(new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    // do something 
    } 
}, new IntentFilter(Intent.ACTION_SCREEN_ON)); 

Sin embargo, esto se basa en tener un servicio perpetuamente en ejecución que recientemente he aprendido no se recomienda porque es frágil (el sistema operativo le gusta ciérrelos) y usa recursos permanentemente.

Decepcionante, parece que no es posible tener un receptor en su manifiesto que intercepte eventos SCREEN_ON.

Esto ha llegado hasta hace muy poco tiempo:

android.intent.action.SCREEN_ON doesn't work as a receiver intent filter

también

Android - how to receive broadcast intents ACTION_SCREEN_ON/OFF?

+0

ah gracias para que detecte la pantalla y me permita manejarla correctamente ¿no? Estaba leyendo su hilo y no recomienda tener un servicio en segundo plano en funcionamiento y esperando que el teléfono se active. ¿Por qué? ¿Cuál es el inconveniente y hay alguna forma de evitarlo? ¿No está ejecutando servicios en segundo plano cómo se detectan eventos como este? – Joe

+0

En este artículo se analiza el problema del servicio en segundo plano - http://www.androidguys.com/2010/03/29/code-pollution-background-control/ –

+0

el problema con esta respuesta, cualquier razón por la que funciona, se debe a que su actividad no recibe intenciones cuando el teléfono está dormido. para que pueda registrar screen_on en su actividad, pero nunca lo obtendrá. –

0

Estás justo en el receptor de radiodifusión. Puede escuchar los eventos de difusión SCREEN_ON y SCREEN_OFF.

3

También podría tener un receptor de difusión que capte el intento de transmisión USER_PRESENT para cuando el usuario haya desbloqueado el dispositivo. Naturalmente, algunas versiones de Honeycomb no honran esto, pero para todas las versiones de Android no cerebralmente letales (2.xy 4.x), funciona muy bien.

+1

Esto también funciona si se registra desde AndroidManifest.xml. – bk138

Cuestiones relacionadas