私はシステム特権を持つアプリを開発しました。デバイスを正常に再起動してシャットダウンすることもできます。問題は、デバイスをリブートした後、uptime
(SystemClock.uptimeMillis()
)カウンタが0
に戻らず、以前の値に追加され続けることです。Androidデバイスの稼働時間がプログラムで再起動した後で再起動しない
たとえば、リブート前のアップタイム値が再起動後300秒だった場合、カウンタを0
にリセットするのではなく、300秒間のアイドル時間を維持します。
私が使用しているコードは以下の通りである:
IPowerManager powerManager = IPowerManager.Stub.asInterface(
ServiceManager.getService(Context.POWER_SERVICE));
try {
if(doReboot) {
Log.v("Provisioning Manager", "PowerUtil: reiniciando Kitkat");
powerManager.reboot(false, null, false);
} else {
Log.v("Provisioning Manager", "PowerUtil: apagando Kitkat");
powerManager.shutdown(false, false);
}
} catch (RemoteException e) {
e.printStackTrace();
}
Iは、以下を使用:
if(doReboot) {
Log.v("Provisioning Manager", "PowerUtil: reiniciando JellyBean");
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
pm.reboot(null);
} else {
Log.v("Provisioning Manager", "PowerUtil: apagando JellyBean");
try {
Runtime.getRuntime().exec(new String[]{ "su", "-c", "reboot -p"});
} catch (IOException e) {
e.printStackTrace();
}
}
アプリメインプロセスが再起動し、シャットダウンとorderes二つのプロセスを有しています第2のプロセスは両方の命令を実行する。明らかに両者ともそれ以上のことをしますが、問題に関連しています。それは彼らがしていることです。
誰かが間違っていることを知っていますか?