センサー入力をリッスンする長期サービスがあります。バッテリーの電力を節約するために、ACTION_SCREEN_OFF でセンサーのサンプリングを停止し、ACTION_SCREEN_ON で再び開始しました。
ただし、多くの場合、ロック画面の時計をちらっと見て(現在の時刻を確認するために)携帯電話の電源を入れてから、電話のロックを解除せずに再び電源を切ります。その場合、すぐにシャットダウンするためだけにセンサーをスピンアップする理由はありません。
したがって、ブロードキャストリスナーで ACTION_SCREEN_ON を ACTION_USER_PRESENT に置き換えてみました。これは 1 つの特別なケースを除いては正常に機能しました。画面がオフになり、電源ボタン (またはホーム ボタン) を同時に押すと、ロック画面がスキップされます。ACTION_USER_PRESENT は受信されず、ACTION_SCREEN_ON のみが受信されます。
ACTION_SCREEN_ON を受信したときに、画面ロックがアクティブかどうかを知り、後で ACTION_USER_PRESENT を期待する方法はありますか? または、ロック画面がスキップされた場合、ACTION_USER_PRESENT を待たずに先に進み、すぐにサンプリングを再開しますか?