画面がオンになったときに呼び出される 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 レベル 4) プロジェクトにあります。
Google コード検索でこれが明らかになり、プロジェクトをダウンロードして同期し、最新のツールで動作するように変換しましたが、そのイベントをインターセプトすることもできません。
これはおそらくサポートされていませんか?
以前は、 Context.registerReceiver() の呼び出しでこのイベントを正常にインターセプトできました。
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// ...
}
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
ただし、これは長寿命のサービスによって実行されました。CommonsWare からの賢明なアドバイスに従って、長寿命の Service を削除し、別の手法を使用することにしました。しかし、画面のオフとオンのイベントを検出する必要があります。