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