java - 更改 root 设备上的日期 (Android M)

标签 java android date android-appwidget android-6.0-marshmallow

我正在为我的应用程序开发一个小部件,它可以更改设备的系统时间。我知道,设备必须被 root,这应该不是问题。
您可以向系统时间添加 2、15 或 31 天。

到目前为止,我正在使用 this方法,它工作正常。

现在,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
如果我在更改日期几次后选中设置中的“自动日期和时间”,设备将更改为过去几天的随机日期,直到我重新启动设备后才会重置。

对此有什么想法吗?

最佳答案

您需要使用此命令/格式,因为 Android M 附带玩具箱日期命令而不是 L 的工具箱自定义日期命令

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

L 的旧格式是

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

关于java - 更改 root 设备上的日期 (Android M),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498628/

相关文章:

java - 当我执行某些操作(如单击按钮)时,如何跟踪在 java 中执行了哪个方法

java - Android 无法正确加载

java - Android兼容性,如何使用仅适用于较新版本的 View 属性?

java - 如何在JSP循环中访问两个类的变量

java - Android 服务 ("startService & stopService") 和播放/停止按钮合二为一

java - 单击 recyclerview 项目后无法更改 fragment

android - Fragment 在点击时隐藏和显示

javascript - Canvas JS 导致问题

mysql - 合并具有单独日期范围的表而不重叠数据 - Access

java - 如果我在日期中将小时、分钟和秒设置为 0,则一天会减少 1..