作者cooper6334 (小恐龍)
看板AndroidDev
標題[問題] 請問如何讓程式喚醒螢幕
時間Fri Apr 15 15:10:26 2011
我現在在寫一個鬧鐘的功能,鬧鐘執行正常,關掉螢幕也會執行
但是他並不會把螢幕打開,是我等時間到了把螢幕打開才看見它正在執行
我希望程式執行的時候能夠自己把螢幕打開,就像內建的鬧鐘一樣
我上網查了資料,本來以為是要用Intent.ACTION_SCREEN_ON 來處理
但是後來我才發覺,在我按下實體按鍵時
用registerReceiver設的BroadcastReceiver能收到螢幕開關訊息
但是我自己用PendingIntent.send()送的,他就收不到了
請問一下我該怎麼處理,是用PowerManager嗎?或是WindowManager?
還是我intent那邊搞不好設錯了?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.86.94
※ 編輯: cooper6334 來自: 111.251.86.94 (04/15 15:11)
1F:推 gpc:不能發intent 要用wakelock 04/15 16:23
2F:→ cooper6334:所以是用PowerManager囉? 04/15 16:31
3F:→ Gway:你的觀螢幕式就切電源而已嗎? 還是有進入suspend to memory? 04/15 16:38
4F:→ cooper6334:就是按一下power鍵讓螢幕變黑 04/15 16:42
5F:→ cooper6334:我現在用PowerManager.WakeLock.acquire() 04/15 16:44
6F:→ cooper6334:uses-permission 也有設了,可是還是沒有反應 04/15 16:44
7F:→ cooper6334:我發覺lock以後我鬧鐘就不會等一等變暗了 04/15 16:48
8F:→ cooper6334:但是我希望的是app能主動打開螢幕 04/15 16:49
9F:→ cooper6334:喔而且內建的鬧鐘好像是綁在螢幕鎖上的,一整個很神奇 04/15 20:42
10F:推 lausai:你有加上ACQUIRE_CAUSES_WAKEUP flag嗎 @@? 04/15 22:01
11F:→ lausai:官網上寫要加這個flag才會強迫screen亮起來 04/15 22:01
感謝樓上,就是這樣
private PowerManager mPowerManager;
PowerManager pm = (PowerManager) getSystemService(this.POWER_SERVICE);
mWakeLock1 = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP,
this.getClass().getCanonicalName());
mWakeLock1.acquire();
這樣執行到這邊的話,手機就會自動打開了
不過會卡在螢幕鎖那邊進不來
手機內建的鬧鐘是綁在螢幕鎖上的,應該不是app層能做的吧,也不是我想做的
※ 編輯: cooper6334 來自: 118.161.52.169 (04/15 22:47)