2011-10-21 10 views
8

Parece haber diferentes opiniones sobre si es posible atrapar el desbloqueo de la pantalla ACTION_USER_PRESENT a través del manifiesto.ACTION_USER_PRESENT en manifiesto con BroadcastReceiver

Esto implica que no hay hilo que no se puede hacer:

Android Broadcast Receiver Not Working

Este hilo implica que sí se puede hacer:

Broadcast Receiver for ACTION_USER_PRESENT,ACTION_SCREEN_ON,ACTION_BOOT_COMPLETED

No soy capaz de obtener el evento que funciona con un emulador 2.3.3 o 3.2.

¿Alguien más tiene experiencia reciente con esto? Y tal vez una muestra de código para compartir?

Respuesta

10

utilizar un receptor:

public class Receive extends BroadcastReceiver { 

if (intent.getAction() != null) { 
      if 
        (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) { 
Intent s = new Intent(context, MainActivity.class); 
        s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

        context.startActivity(s); 
}} 

Y en su manifiesto:

<receiver 
     android:name=".Receive" 
     android:enabled="true" 
     android:exported="false"> 
     <intent-filter> 
      <action android:name="android.intent.action.USER_PRESENT"/> 
     </intent-filter> 
    </receiver> 
+0

i utilizado por encima de su código pero la primera vez mi actividad cerradura está abierta, pero no sé después de esa llamada que automaticlly fondo de pantalla de diálogo cuando la pantalla está encendida.¿Por qué este diálogo se abre en lugar de mi actividad de bloqueo cuando la pantalla está encendida ... ayúdenme rápidamente gracias ... –

+0

No usaría 'android: exported =" false "' que tampoco está permitido en ' '-Tag, vea http://stackoverflow.com/questions/29081414/why-wont-this-broadcast-receiver-wor k-in-lollipop # comment58423396_29274695 – OneWorld

Cuestiones relacionadas