問題の説明:
この記事は、DatePicker と TimerPicker を使用して日付と時刻を設定する前の記事の更新です。
主な理由は、プロセス コマンドを実行して日付と時刻を変更するときに、デバイスを再起動しても反映されないことです。
これは非常に重要です。再起動して設定時間を確認する必要があります。
したがって、コマンド「su \\ date -s 20220102.020300」を実行した後、コマンドを追加する必要があります。
このコマンドは hwclock であり、Linux で直接実行できますが、Android の adb シェルでは実行できません。
これは、コマンド「busybox hwclock -f /dev/rtc0」でハードウェア デバイス名を制御することで実現する必要があります。
ただし、上記の方法も無効で、busybox hwclock コマンドの実行は成功するものの、実際には効果が得られないという問題があります。理由はわかりません。hwclock -w なども同様です。
解決:
1. まず、プロセスが複数のコマンドを実行する問題を解決します。
Process process = Runtime.getRuntime().exec("su \\ busybox hwclock -f /dev/rtc0 && date -s " + cmd);
process.waitFor();
上記の「\\」および「&&」記号に注意してください。
2. Busybox では rtc をオフにすることはできませんが、別のコマンドでオフにすることはできます。もちろん、お使いのデバイスが私のデバイスとは異なる可能性があるため、それらを書き留めておきます。