2013-04-10 50 views
2

我使用的follwing代碼設置報警喚醒設備:安卓:使用報警

Intent intent = new Intent(context, Receiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(reminderContext, 0, intent, 
    PendingIntent.FLAG_CANCEL_CURRENT); 
alarmManager.set(AlarmManager.RTC_WAKEUP, 
System.currentTimeMillis()+delay,pendingIntent); 

當警報響起時,我執行,顯示了新的活動和再現聲音相同的代碼。這很好,但如果我的設備處於睡眠模式,當鬧鐘響起時,我只能聽到聲音。沒有顯示任何活動,我的設備仍處於睡眠模式。

當鬧鈴響起時,爲了獲得自動喚醒設備,我該怎麼做?

編輯:

我試過如下:

04-10 13:49:59.260: A/PowerManager(4292): WakeLock finalized while still held: TAG 

而且,我對acquire方法這樣的警告:

PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); 
WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); 
wakeLock.acquire(); 

KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); 
keyguardLock.disableKeyguard(); 

這似乎與此異常工作

找到了一個喚醒鎖acquire()但沒有釋放()調用的任何地方

+0

的[?我能喚醒我的Android時,它在和睡眠不插電】(可能的複製https://stackoverflow.com/questions/ 5262641 /可-I-喚醒 - 我 - Android的時候,它 - 是 - 不插入和-睡覺) – 2017-11-03 14:40:09

回答

8

Receiver活動試試下面的代碼:

Window wind; 
wind = this.getWindow(); 
wind.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
wind.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
wind.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);