このアプリを少し変更しました: https://github.com/commonsguy/cw-omnibus/tree/master/JobScheduler
setExactAndAllowWhileIdle を使用してアラームを設定し、アラームを 1 分ごとに鳴らしてログに記録するようにスケジュールします。
Doze のドキュメントによると、電話が Doze モードのときにこのアプリが実行されている場合、アラームは 15 分ごとに 1 つだけ鳴るはずです。その動作は見られません。
Android M を実行している aa nexus 5 で、アプリとアラーム スケジューリング プロセス全体を開始した後、提供された abd コマンドを使用して電話を Doze 状態にしました...
adb shell dumpsys battery unplug adb shell dumpsys deviceidle step adb shell dumpsys deviceidle -h
...ログから、1 分間に 1 回約 30 分のアラームが鳴り、最終的には 15 分間隔で約 1 時間アラームが鳴っているのを確認しました。次に、1 分に 1 回に戻し、15 分間隔に戻します。テスト中、電話はまったく邪魔されませんでした。
これがなぜなのか誰か知っていますか?これらの adb コマンドの後、電話はすぐに Doze モードになり、開始から 15 分後にアラームが鳴るという印象を受けました。
ご協力いただきありがとうございます。