ネットワークアクティビティに依存するAndroidアプリケーションを作成しており、アラームマネージャーがスリープ状態から電話を起こすことがあります。
私の質問は、これをデバイスで確実にテストするにはどうすればよいですか? 理想的には、電話を完全にスリープ状態にする方法を教えてください。それができない場合、電話が完全にスリープ状態になったことをどうすれば確実に知ることができますか?
Alarm Manager / Wake Lock / Sleep 処理コードをどのようにテストしますか?
ネットワークアクティビティに依存するAndroidアプリケーションを作成しており、アラームマネージャーがスリープ状態から電話を起こすことがあります。
私の質問は、これをデバイスで確実にテストするにはどうすればよいですか? 理想的には、電話を完全にスリープ状態にする方法を教えてください。それができない場合、電話が完全にスリープ状態になったことをどうすれば確実に知ることができますか?
Alarm Manager / Wake Lock / Sleep 処理コードをどのようにテストしますか?
デバイス/エミュレーターの画面をオフにしてから、次のコマンドを実行します。
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle step
「IDLE」というメッセージが表示されるまで、2 つ目を再実行します。これは、Android 6.0 以降を実行しているデバイスで機能します。
デバイスの電源ボタンを押すと、スリープ状態になります。PowerManagerにもgoToSleep(long time)メソッドがありますが、これにはシステム アプリケーション用に予約されている DEVICE_POWER 権限が必要です。
エミュレータでテストしたい場合は、ホーム画面からメニューを押します->設定->アプリケーション->開発->ステイアウェイクのチェックを外します