在已经获取root权限的Android M设备上更改日期

3
我正在为我的应用程序开发一个小部件,它可以改变设备的系统时间。我知道设备必须已经被root过,这应该不是问题。
您可以将2、15或31天添加到系统时间中。
到目前为止,我一直在使用这个方法,并且一直运行正常。
现在,Android M即将发布,我在Android M Preview 3上测试了我的应用程序,发现上述代码只在我的小部件上显示日期更改,而没有在设备上更改它。
我在adb shell中测试了几种格式,找到了一个几乎符合我要求的解决方案。
    command = "date -u "+month+day+hour+minute+year+"."+second+"\n";

现在,设备的日期已更改,但是当我增加2天时,日期也会增加2小时。例如:10.09.2015 09:43 -> 12.09.2015 11:43
如果我在更改日期几次后在设置中勾选“自动日期和时间”,则设备会随机更改为过去几天的日期,并且直到我重新启动设备之前都不会被重置。
对此有什么想法吗?
1个回答

4

由于Android M使用的是toybox日期命令而不是来自L版本的toolbox自定义日期命令,因此您需要使用此命令/格式。

adb shell date $(date +%m%d%H%M%Y)

L 的旧格式是

adb shell date -s $(date +%Y%m%d.%H%M%S)

1
对我来说没问题!状态栏的时钟似乎没有变化,但系统时间确实变了。 - drewi
1
这种格式是正确的,而且在你进入“设置”->“日期和时间”时,你会看到“设置时间”正确地匹配你的新时间,但我发现多任务处理停止工作(你无法切换应用程序,当你触摸按钮时什么也不会发生),并且小部件时间不会更新。如果你启动时钟应用程序,它会显示新时间,但它不会更新。你不能关闭时钟应用程序尝试重新启动,它不会更新到新的时间(我假设时钟应用程序显示当前时间随着时间的自然变化而改变),似乎卡住了。 - dubmojo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接