Android 为【apk】文件签名,增加修..
时间:2010-09-10 来源:terry_龙
昨天写应用,涉及到需要修改系统时间等操作,查了一下Android 的设置源码,里面的一个方法如下:
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
long when = c.getTimeInMillis();
if (when / 1000 < Integer.MAX_VALUE) {
SystemClock.setCurrentTimeMillis(when);
}
updateTimeAndDateDisplay();
}
从上面的 Android 应用程序源码可以看出,修改系统日期需要为Calendar 设置年月日,然后通过调用 SystemClock.setCurrentTimeMillis 方法,设置系统日期,既然源码是这样写的,那我们也依样画葫芦来学一下吧,下面是通过使用datePicker修改日期的代码:
canlendar = Calendar.getInstance();
year = datePicker.getYear();
month = datePicker.getMonth();
day = datePicker.getDayOfMonth();
canlendar.set(Calendar.YEAR, year);
canlendar.set(Calendar.MONTH, month);
canlendar.set(Calendar.DAY_OF_MONTH, day);
long when = canlendar.getTimeInMillis();
if (when / 1000 < Integer.MAX_VALUE) {
SystemClock.setCurrentTimeMillis(when);
tv_date.setText(canlendar.get(Calendar.YEAR) + "/"
+ ((canlendar.get(Calendar.MONTH) + 1)) + "/"
+ canlendar.get(Calendar.DAY_OF_MONTH));
}
Tip:每次需要使用Calendar 必须获得一次实例,否则会它会使用上一次获取实例的日期格式,修改的时候可能会有点小问题
可是,照着上面的代码敲了之后,运行却出现如下的警告:
网上查了一下,说SystemClock.setCurrentTimeMillis 这个函数需要root 权限或者运行在系统进程中才可以用,通过参考了这一篇文章我得到了解决办法:
相关阅读 更多 +
排行榜 更多 +