|
悬赏8未解决
今天听到别人的一个需求,说让android 在定时的时间开机,但是我想了想,这可以实现的貌似不可能,至少在当前阶段需要硬件支持! 0 m o/ h, h! X. N* h! d% |
" F" ]3 J2 r& i" U
但是我们可以先让android 定时关机,怎么做呢。。当然用alarm 了。
* D- [+ r2 f" d% b% }4 `- u8 w0 x# s7 k; m5 l
先通过设置pendingIntent ..然后把设置到alarm 。。。来电具体的代码吧! . E% q5 m* h" e: y6 E- K
$ v& |& K) }- r# w% v0 \/ V$ {
Java代码
# b2 W2 F1 }, I% _3 D8 ZCalendar calendar = Calendar.getInstance(); 6 w5 P; a. b8 y
long nowTime = calendar.getTimeInMillis();//这是当前的时间
2 z$ O. ?/ }1 S4 ?- Zint hour = 你要设置的时间
, u3 m, `% ^9 g- D4 B ]int minutes = 你要设置的时间
/ E; \2 n* A. _+ u f& R
7 G. V1 F6 p4 j, [" SCalendar myCal = Calendar.getInstance(); 0 G' M3 h/ o3 x
myCal.set(Calendar.HOUR_OF_DAY,hour);
2 z. C( A5 x& }4 S# ] F, O( n% dmyCal.set(Calendar.MINUTE,minutes); 8 z& t7 @- Z- m, E$ Q5 }+ D2 g
long shutDownTime = myCal.getTimeInMillis();
2 J- k5 B4 t# n9 ]/ v+ K2 X
) \4 V9 ?* l5 b: ^% ^4 ]& W. Y! o7 x8 UIntent intent= new Intent();
4 }% @+ \- w: \+ o9 Wintent.addAction();
1 }$ ?! `0 h4 d" G4 x8 ?' vPendingIntent pendingIntent = PendingIntent.getService(context,0,intent,0);
. }8 ?: M/ r, f' U6 c0 a& f$ XAlarmManager alarm = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); W1 ~: s% _' k) K9 Z! S, L/ i! M. F. E' i
6 p! W- r7 Y a5 d; b' c1 X
alarm.set(AlarmManager.RTC,shutDownTime -nowTime, pendingIntent); $ I# v# \! F) q
% D, \6 X# `+ n" A* W! U下面是 service 。。。 ) j: E7 g, z* t) ^
0 W# ^8 Y, I+ i& M( G' f; J4 f7 H! m接收到 Intent中的action 的话。。就启动。。
+ C2 V$ ~5 H' o5 z1 \7 T; N& q
; F" T1 P/ e8 L O& IonStart(){
& x8 O3 Z" Q8 [* V5 rIntent intent = new Intent(); 2 V8 @& r8 T) {- T6 |
intent.setAction("android.intent.action.ACTION_SHUTDOWN"); / Z2 m2 n+ ~8 d1 j6 c
sendBroadCast(intent); f% g2 K" w- V; w
} 8 p0 Y ]9 `* I3 } @' c: U
' \; t6 @3 _8 @( L
( b4 v; x& r8 {+ s
以上就是伪代码了。。看看是不是能关机了呢?对了记得 在清单文件中设置权限啊。。。。 |
|