|
悬赏8未解决
今天听到别人的一个需求,说让android 在定时的时间开机,但是我想了想,这可以实现的貌似不可能,至少在当前阶段需要硬件支持!
5 y. c4 o, r, D9 X, l4 S! L; Z7 ^% Y# g
但是我们可以先让android 定时关机,怎么做呢。。当然用alarm 了。
+ r8 ~. K5 H% d4 P* }) J& Q
: `( O: K& q s先通过设置pendingIntent ..然后把设置到alarm 。。。来电具体的代码吧! 7 t, ] ~# ^* s1 g
0 r& K0 I2 U- J1 B1 [, yJava代码
' S5 y# U. S. U/ X( JCalendar calendar = Calendar.getInstance();
. d1 @' T- w1 H. Vlong nowTime = calendar.getTimeInMillis();//这是当前的时间
8 m4 p5 H9 c5 |1 M8 D/ o$ Zint hour = 你要设置的时间
: u3 D2 d- U( O0 xint minutes = 你要设置的时间 ( X1 x0 {3 J9 J6 M+ A7 w$ c& Q- h
( U9 N! |* N5 s
Calendar myCal = Calendar.getInstance();
# L9 B G" ?/ a) Q3 NmyCal.set(Calendar.HOUR_OF_DAY,hour); 1 `/ @& H& F4 E, f$ `' ?
myCal.set(Calendar.MINUTE,minutes);
0 J8 [! |8 j$ r- Qlong shutDownTime = myCal.getTimeInMillis();
; M2 b8 g$ s7 O8 j 5 {/ F5 X) t8 }( X3 r; b ?5 A
Intent intent= new Intent();
) Q3 V! O! `* q# wintent.addAction();
( q) _# b) U" R! {PendingIntent pendingIntent = PendingIntent.getService(context,0,intent,0);
' ~4 ~( ^* n0 qAlarmManager alarm = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); * H, {- S2 q3 p4 N T
; @% p8 a& g/ Q. [. z
alarm.set(AlarmManager.RTC,shutDownTime -nowTime, pendingIntent);
$ v- i" H% v: I8 |6 N! t6 c
& u0 b9 O. B" K4 @1 g/ t; N+ y7 [# m下面是 service 。。。 : f' ]3 n2 ?! i. g. N8 [* o
( O7 M! \6 f- k
接收到 Intent中的action 的话。。就启动。。 # e5 ~) g T& \2 A
" A6 ~, s/ G, k6 \onStart(){ 5 C) _3 Q0 l- {" W0 F
Intent intent = new Intent();
! j8 Y2 x# M1 B X, t9 Ointent.setAction("android.intent.action.ACTION_SHUTDOWN"); ! E/ W% Z. V6 x" d A* M3 t
sendBroadCast(intent);
9 P5 R; b0 k% W; G: h$ Q' J: Y}
8 {6 r9 f+ B. u4 Q" z3 x% @5 A& `9 y& d- G
) f) S3 R" Y: O4 \( a' N% e2 p, T以上就是伪代码了。。看看是不是能关机了呢?对了记得 在清单文件中设置权限啊。。。。 |
|