2010-05-10 10 views
7

Gibt es eine Absicht, die ausgelöst wird, wenn ein Benutzer den Bildschirm entsperrt? Ich möchte, dass meine App die Helligkeit anpasst, wenn sich der Bildschirm einschaltet, aber das Problem besteht darin, dass der Bildschirm auf dem Sperrbildschirm ausgelöst wird und die Anzeige auf diesem Bildschirm nicht angepasst wird.Android entsperren Bildschirm Absicht?

Antwort

2

Betrachten Sie die disableKeyguard Methode in der Klasse.

+0

Ich denke nicht, dass dies die Frage direkt beantwortet. Dies scheint eine Methode zu sein, den Bildschirm zu entsperren, anstatt benachrichtigt zu werden, wenn der Bildschirm entsperrt wurde. – stealthcopter

8

Ja, die ACTION_USER_PRESENT, nachdem der Benutzer gesendet wird entriegelt:

http://developer.android.com/reference/android/content/Intent.html#ACTION_USER_PRESENT

Beachten Sie, dass dies eine geschützte Sendung ist und wenn der Benutzer eine Sperre Bildschirm Ersatz wie WidgetLocker oder NoLock wird mit der USER_PRESENT kann nicht gesendet werden oder zur falschen Zeit gesendet werden.

Für WidgetLocker ‚Erkennung s entsperren sehen: http://teslacoilsw.com/widgetlocker/developers

5

den Empfänger hinzufügen in menifest Datei

<receiver android:name=".ScreenReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.USER_PRESENT" /> 
      </intent-filter> 
     </receiver> 

einen Rundfunkempfänger erstellen, die App öffnen funktioniert, wenn das Telefon gesperrt ist.

public class ScreenReceiver extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     System.out.println(intent.getAction()); 
     if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) 
     { 
      Intent intent1 = new Intent(context,MainActivity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
      context.startActivity(intent1); 
     } 
    } 

Ich bin mir sicher, es wird funktionieren.