Я пытаюсь вызвать BroadcastReceiver при включении экрана. В моем AndroidManifest.xml я указал:
<receiver android:name="IntentReceiver">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON"></action>
</intent-filter>
</receiver>
Однако кажется, что получатель никогда не вызывается (точки останова не срабатывают, операторы журнала игнорируются). Я поменял SCREEN_ON на BOOT_COMPLETED для теста, и вызывает .
Это в проекте 1.6 (SDK level 4).
Поиск кода Google показал это, я скачал проект и синхронизировал его, преобразовал его для работы с новейшими инструментами, но он также не может перехватить это событие.
http://www.google.com/codesearch/p?hl=en#_8L9bayv7qE/trunk/phxandroid-intent-query/AndroidManifest.xml&q=android.intent.action.SCREEN_ON
Возможно, это больше не поддерживается?
Ранее мне удавалось успешно перехватить это событие с помощью вызова Context.registerReceiver () примерно так:
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// ...
}
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
Однако это было выполнено долгоживущей Службой. Следуя мудрому совету CommonsWare, я решил попытаться удалить долгоживущую Службу и использовать разные методы. Но мне все равно нужно обнаруживать отключение и включение событий.