Android 通过应用设置系统日期和时间的方法
2024-08-30 19:34:39
android 2.3
android 4.0
测试可行,不过需要ROOT权限.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
import java.io.DataOutputStream; import java.io.File; import java.io.IOException; import java.util.Calendar; import android.os.SystemClock; public class SystemDateTime { static final String TAG = "SystemDateTime" ; public static void setDateTime( int year, int month, int day, int hour, int minute) throws IOException, InterruptedException { requestPermission(); Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month- 1 ); c.set(Calendar.DAY_OF_MONTH, day); c.set(Calendar.HOUR_OF_DAY, hour); c.set(Calendar.MINUTE, minute); long when = c.getTimeInMillis(); if (when / 1000 < Integer.MAX_VALUE) { SystemClock.setCurrentTimeMillis(when); } long now = Calendar.getInstance().getTimeInMillis(); //Log.d(TAG, "set tm="+when + ", now tm="+now); if (now - when > 1000 ) throw new IOException( "failed to set Date." ); } public static void setDate( int year, int month, int day) throws IOException, InterruptedException { requestPermission(); 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); } long now = Calendar.getInstance().getTimeInMillis(); //Log.d(TAG, "set tm="+when + ", now tm="+now); if (now - when > 1000 ) throw new IOException( "failed to set Date." ); } public static void setTime( int hour, int minute) throws IOException, InterruptedException { requestPermission(); Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, hour); c.set(Calendar.MINUTE, minute); long when = c.getTimeInMillis(); if (when / 1000 < Integer.MAX_VALUE) { SystemClock.setCurrentTimeMillis(when); } long now = Calendar.getInstance().getTimeInMillis(); //Log.d(TAG, "set tm="+when + ", now tm="+now); if (now - when > 1000 ) throw new IOException( "failed to set Time." ); } static void requestPermission() throws InterruptedException, IOException { createSuProcess( "chmod 666 /dev/alarm" ).waitFor(); } static Process createSuProcess() throws IOException { File rootUser = new File( "/system/xbin/ru" ); if (rootUser.exists()) { return Runtime.getRuntime().exec(rootUser.getAbsolutePath()); } else { return Runtime.getRuntime().exec( "su" ); } } static Process createSuProcess(String cmd) throws IOException { DataOutputStream os = null ; Process process = createSuProcess(); try { os = new DataOutputStream(process.getOutputStream()); os.writeBytes(cmd + "\n" ); os.writeBytes( "exit $?\n" ); } finally { if (os != null ) { try { os.close(); } catch (IOException e) { } } } return process; } } |
结伴旅游,一个免费的交友网站:www.jieberu.com
推推族,免费得门票,游景区:www.tuituizu.com
最新文章
- Keras官方Example里Mnist-cnn的调试运行
- VS2013,VS2015设置类模板文件表头
- 脚本录制--html模式和url模式
- Initialize the shader 初始化着色器
- cadence电路板布线
- LeetCode 178. 分数排名
- laravel之数据库
- 树莓派上配置electron记录
- 大臣的旅费---树的直径(dfs)
- 地址重写 No input file specified的解决方法
- poj 3678(SCC+2-SAT)
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 创建异步树形菜单
- Android简易项目--傻瓜式阿拉伯语输入法(Dummy Arabic Input)
- linux之shell终端使用操作快捷键
- WPF GridLinesVisibility属性
- Linux 信号:signal 与 sigaction
- 沐雪多用户微信公众平台开发源码,商城小程序源码(2018年最新的asp.net C# 微信源码,小程序源码)
- mySql---or和in的效率问题(和<;=、>;=、between之间的关系)
- MVC相关资料收集
- 三种实现日志过滤器的方式 (过滤器 (Filter)、拦截器(Interceptors)和切面(Aspect))
热门文章
- HDU 1042 N!(高精度阶乘、大数乘法)
- java监控
- Elasticsearch-安装、日志解读
- [转帖]虚拟内存探究 -- 第四篇:malloc, heap &; the program break
- Maven - 配置setting.xml
- Linux 中将用户添加到指定组
- PostgreSQL-优化之分表
- vue render 渲染函数
- 【网络安全】telnet 登陆远程服务器
- 异常:Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext