android: широковещательный приемник для включения и выключения экрана

Мне просто интересно, можно ли зарегистрировать широковещательный приемник, который определяет включение / выключение экрана в манифесте приложения. Причина, по которой мне не нравится программируемый метод, заключается в том, что он требует, чтобы приложение было запущено, чтобы обнаружить такую ​​вещь, в то время как: «Приложения с широковещательными приемниками, зарегистрированными в манифесте, не должны запускаться, когда намерение транслируется для приемников для выполнения» (источник: книга «Разработка профессиональных приложений для Android 2»)

Мое приложение на самом деле является приложением с заблокированным экраном, которое с помощью программируемый способ должен работать все время: S

Есть ли способ обойти это?

Я пробую следующее в манифесте:

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

и простой класс MyBroadCastReciever:

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();
        }
    }
}
58
задан Yury 28 February 2012 в 10:03
поделиться