|
悬赏8未解决
今天听到别人的一个需求,说让android 在定时的时间开机,但是我想了想,这可以实现的貌似不可能,至少在当前阶段需要硬件支持! 5 k, p' n( {- r' y' {
3 [ u! B5 Q, y0 Y. W
但是我们可以先让android 定时关机,怎么做呢。。当然用alarm 了。 / J$ t% z. A1 v. D
+ _1 q' X" P6 \0 N0 P- I
先通过设置pendingIntent ..然后把设置到alarm 。。。来电具体的代码吧!
! m4 K) M) a: M- ]4 o. H
1 C. w0 p1 h wJava代码 8 g* M+ L( r6 v# f/ D
Calendar calendar = Calendar.getInstance(); " m$ L y' Q& B( e% t/ g
long nowTime = calendar.getTimeInMillis();//这是当前的时间 6 m8 p/ C# ?# N6 O/ m1 t
int hour = 你要设置的时间 , Y6 A8 U; Q# M* O9 G! J
int minutes = 你要设置的时间 & z( G$ _" x6 f8 A0 s3 `1 q
- x3 ^5 b0 ?4 pCalendar myCal = Calendar.getInstance();
7 U2 E6 X ~3 k2 ]. lmyCal.set(Calendar.HOUR_OF_DAY,hour); ! V6 n2 n. z, r& R0 G
myCal.set(Calendar.MINUTE,minutes); & h5 }. y: x' ^
long shutDownTime = myCal.getTimeInMillis();
5 G: x3 E9 m: `! V5 C- F
6 r4 X) z9 J2 k7 I. ?Intent intent= new Intent();
" w0 t5 S/ I9 X6 A; s, j* jintent.addAction(); 4 o! I3 Q7 F8 x7 i9 C
PendingIntent pendingIntent = PendingIntent.getService(context,0,intent,0);
: s w! F0 y2 WAlarmManager alarm = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
9 J% ?3 Q/ F+ o) m% i
+ e: E9 w5 Z' \3 L1 q! galarm.set(AlarmManager.RTC,shutDownTime -nowTime, pendingIntent); ) o- v3 D( O, [2 z) c/ M/ \; l
0 g( J3 ?9 v9 @/ g! [- j; F
下面是 service 。。。 $ K5 l! b+ F8 `5 e; G7 U
+ g4 z6 m* o- e7 Y5 j接收到 Intent中的action 的话。。就启动。。
* Q: A- q0 a2 W, f2 q& L ) `0 d7 N1 G9 J( ^+ f# X
onStart(){ : ~% u# p% u" Q
Intent intent = new Intent();
6 q# l1 R/ w: wintent.setAction("android.intent.action.ACTION_SHUTDOWN");
; \% F8 _ I* R) L% \! |- x& G/ NsendBroadCast(intent);
8 _2 e& N6 w, @+ T5 J( \+ D& S x}
) o; }8 t9 x' L
( ^# C2 w# I7 B
. O8 h) r6 Y% B) i: F" ]5 F以上就是伪代码了。。看看是不是能关机了呢?对了记得 在清单文件中设置权限啊。。。。 |
|