android: broadcast-receiver für screen on und screen off

Ich wurde gerade gefragt, ob es möglich ist, sich ein broadcast-receiver, der erkennt, Screen ON/OFF in der Anwendung manifestieren.
Der Grund, warum ich nicht wie die programmierbare Methode ist, dass es erfordert die app gestartet sein, um zu erkennen, wie ein Ding, während:
"Anwendungen mit dem Broadcast Receiver registriert, die im manifest nicht ausgeführt werden, wenn die Absicht ist die Sendung für den Empfänger zu führen" (Quelle: Professional Android 2 Application Development Buch)

Meine app ist eigentlich eine lockscreen-app, die mithilfe der programmierbaren Art und Weise ausgeführt werden muss die ganze Zeit :S

Gibt es eine Möglichkeit, um es?

Ich versuche im folgenden, die im manifest:

<receiver android:name=".MyBroadCastReciever">
    <intent-filter>
        <action android:name="android.intent.action.SCREEN_OFF"/>
        <action android:name="android.intent.action.SCREEN_ON"/>
    </intent-filter>
</receiver>

und einfache MyBroadCastReciever Klasse:

public class MyBroadCastReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            Log.i("Check","Screen went OFF");
            Toast.makeText(context, "screen OFF",Toast.LENGTH_LONG).show();
        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            Log.i("Check","Screen went ON");
            Toast.makeText(context, "screen ON",Toast.LENGTH_LONG).show();
        }
    }
}
können Sie mir ein Beispiel, welches funktioniert ? Ich möchte etwas tun, wenn Bildschirm sperren oder entsperren .

InformationsquelleAutor himura | 2012-02-28

Schreibe einen Kommentar