Android应用程序获取系统时间的方法:

System.currentTimeMillis();

Android SDK虽然提供了设置系统时间的方法SystemClock.setCurrentTimeMillis(),但是禁止普通应用程序设置系统时间,要调用该方法必须具有root权限并拥有系统签名。网上有一些文章介绍了Android应用程序实现设置系统时间的方法(见参考资料1),但比较繁琐,经搜寻资料,找到了一种比较简便的方法(见参考资料4):

1.     在AndroidManifest.xml中增加权限android.permission.SET_TIME

2.     应用程序调用如下示例代码对系统时间进行设置:

Calendar c = Calendar.getInstance();

c.set(2010, 1, 1, 12, 00, 00);

AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);

am.setTime(c.getTimeInMillis());

3.     确保系统是root的,并将Eclipse编译出来的.apk文件通过adb push到设备的/system/app/下,而不是通常的安装到设备上。

用以上方法仍然无法调用SystemClock.setCurrentTimeMillis()设置系统时间。

此外,应用程序也可以打开系统设置(Settings)的设置系统时间界面,由手工设置系统时间:

startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));

参考资料

1)     Android修改系统时间(应用程序获得系统权限),http://blog.csdn.net/zeng622peng/article/details/6565597

2)     Set Android's date/time programmatically,http://stackoverflow.com/questions/9434239/set-androids-date-time-programmatically

3)     Is possible to set System DateTime from my Android App?,http://stackoverflow.com/questions/6584772/is-possible-to-set-system-datetime-from-my-android-app

4)     How to set mobile system time and date in android?,http://stackoverflow.com/questions/1332269/how-to-set-mobile-system-time-and-date-in-android

更多相关文章

  1. android surfaceflinger研究----显示系统
  2. Android 系统服务一览表
  3. Android 系统中 Location Service 的实现与架构
  4. 手把手教你查看android系统源码
  5. 阅读 Android 系统源码有什么好处?哪些地方需要重点学习呢?
  6. Android官方使低版本系统(2.1)支持ActionBar的方法
  7. Android中如何修改系统时间(应用程序获得系统权限)

随机推荐

  1. mysql官方文档之Range Optimization
  2. MySqli 中预处理类 stmt
  3. 如何使用另一个表中的多个列替换表中的一
  4. 哪个更好的大查询或多个小查询?
  5. SQL:通过将两个列映射到彼此来更新表。
  6. mysql 基于position 恢复数据库
  7. MySQL导出和导入SQL脚本
  8. 如何获得MySQL中某一行的偏移量?
  9. mysql-5.7.10-winx64 绿色版安装办法
  10. mysql主从复制配置操作以及主主配置宕机