2013-07-09 20 views
0

我需要製作一個應用程序來設置本週的日曆,的Android:Android的可AlarmManager醒來執行計劃任務的設備?

基本上,用戶將輸入一週中每一天的活動的開始時間和結束時間。

他會做一次。

之後設置,應用程序(我將使用AlarmManager)將開始他的活動(連續播放視頻)在設定的時間和完成,所設定的時間:一週的每一天

;

永遠,

沒有人機交互(當然手機/平板電腦必須接通並插入到電力)。

我關心的是以下幾點:

請問alarmmanger能夠真正喚醒設備早晨開始沒有來自用戶的任何交互活動(播放視頻)?

使用

WindowManager wm = Context.getSystemService(Context.WINDOW_SERVICE); 
    Window window = getWindow(); 
    window.addFlags(wm.LayoutParams.FLAG_DISMISS_KEYGUARD); 

的巧妙建議給了我很多的錯誤在Eclipse:

enter image description here

回答

6

是u能我想類似,但不是exactly..i試過每天調用設備在上午9點至下載我用這段代碼

PowerManager pm = (PowerManager) context 
      .getSystemService(Context.POWER_SERVICE); 
    PowerManager.WakeLock wl = pm.newWakeLock(
      PowerManager.PARTIAL_WAKE_LOCK, ""); 
    wl.acquire(); 

    wl.release(); 

這是我實現的內容: 用於設置Alaram

AlarmManager am = (AlarmManager) context 
      .getSystemService(Context.ALARM_SERVICE); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.add(Calendar.MINUTE, 10); 
    calendar.add(Calendar.SECOND, 00); 
    //alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
    am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*1, pi); 

BroadcastReciever:

Register BroadcastReciever: 
PowerManager pm = (PowerManager) context 
      .getSystemService(Context.POWER_SERVICE); 
    PowerManager.WakeLock wl = pm.newWakeLock(
      PowerManager.PARTIAL_WAKE_LOCK, ""); 
    wl.acquire(); 
    // Put here YOUR code. 

    Intent startAutoSyncService = new Intent(context, 
      AppoinmentService.class); 
    context.startService(startAutoSyncService); 

    wl.release(); 
+1

非常感謝srikanth。請問我什麼時候需要使用這個?當我設置鬧鐘?或者在鬧鐘響起並開始活動的那一刻?再次感謝! –

+1

編輯我的答案 –

+1

也在設備重新啓動時,您需要重置報警 – user1140237

1

是的,它會,如果你使用ELAPSED_REALTIME_WAKEUPRTC_WAKEUP的報警類型。

+0

非常感謝鍾。請問兩者之間的區別是什麼? –

+0

的'ELAPSED_REALTIME'意味着傳遞給'AlaramManager.set'方法的時間被根據http://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime()。 'RTC'意味着你打發時間根據http://developer.android.com/reference/java/lang/System.html#currentTimeMillis是()。 – Jong

2

是警報是gd選項。使用鍵盤鎖辭退如果設備被鎖定..

Window win = getWindow(); 
     win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
       | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 

     win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 
       | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

在invking報警&的時候開始你的視頻/音頻的活動或你想成爲在報警時屏幕被調用

在設備重啓需要重置報警

+0

不妨考慮重置Boot上的鬧鐘!這意味着要清理所有可能的事先存在的候選人,對嗎? –

+0

謝謝你的建議,但是當我使用你的代碼時,Eclipse給了我很多錯誤.... :-( –

+1

plz檢查更新後的答案..測試工作正確... – user1140237