本人用的下面方法修改系统时间

try {

Process process = Runtime.getRuntime().exec("su");

String datetime = "20131023.112800"; // 测试的设置的时间【时间格式

// yyyyMMdd.HHmmss】

DataOutputStream os = new DataOutputStream(process

.getOutputStream());

os.writeBytes("setprop persist.sys.timezone GMT\n");

os.writeBytes("/system/bin/date -s "

+ datetime + "\n");

os.writeBytes("clock -w\n");

os.writeBytes("exit\n");

os.flush();

Toast.makeText(MainActivity.this, "系统时间同步成功",

Toast.LENGTH_SHORT).show();

} catch (IOException e) {

Toast.makeText(MainActivity.this,

"系统时间同步失败,莫非没有ROOT权限?", Toast.LENGTH_SHORT)

.show();

e.printStackTrace();

}

正常情况是时间被修改,修改后系统时间显示11:28,前天尝试成功了;可今天本人用这段代码修改,系统时间却显示19:28,不知道是时区的问题还是什么情况,代码都没变。假如把os.writeBytes(“setprop persist.sys.timezone GMT\n”);中的GMT改为GMT+16:00后,再运行,系统时间修改成功,成11:28。但是昨天本人也+16:00了,时间还是修改不对,也就是说有时修改的准,有时修改的不准,不知道为何,求高手指导!谢谢!

解决方案

1

用真机事实没有 模拟器很多问题的有时候

49

Calendar c = Calendar.getInstance();

// 年 月-1 日 时 分 秒

if (date != null) {

int year = date.getYear() + 1900;

int day = date.getDate();

int month = date.getMonth();

int hour = date.getHours();

int minutes = date.getMinutes();

int seconds = date.getSeconds();

c.set(year, month, day, hour, minutes, seconds);

}

AlarmManager am = (AlarmManager) LoginActivity.this

.getSystemService(Context.ALARM_SERVICE);

am.setTime(c.getTimeInMillis());

本人是这么修改的 没有问题

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明修改android系统时间出现的奇怪问题(已经有root权限)!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐