Android は Process を使用して複数のコマンドを実行し、システムの日付と時刻を設定します。

問題の説明:

この記事は、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 をオフにすることはできませんが、別のコマンドでオフにすることはできます。もちろん、お使いのデバイスが私のデバイスとは異なる可能性があるため、それらを書き留めておきます。

おすすめ

転載: blog.csdn.net/poolooloo/article/details/128836059