看板 AndroidDev 關於我們 聯絡資訊
我現在在寫一個鬧鐘的功能,鬧鐘執行正常,關掉螢幕也會執行 但是他並不會把螢幕打開,是我等時間到了把螢幕打開才看見它正在執行 我希望程式執行的時候能夠自己把螢幕打開,就像內建的鬧鐘一樣 我上網查了資料,本來以為是要用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)
gpc:不能發intent 要用wakelock 04/15 16:23
cooper6334:所以是用PowerManager囉? 04/15 16:31
Gway:你的觀螢幕式就切電源而已嗎? 還是有進入suspend to memory? 04/15 16:38
cooper6334:就是按一下power鍵讓螢幕變黑 04/15 16:42
cooper6334:我現在用PowerManager.WakeLock.acquire() 04/15 16:44
cooper6334:uses-permission 也有設了,可是還是沒有反應 04/15 16:44
cooper6334:我發覺lock以後我鬧鐘就不會等一等變暗了 04/15 16:48
cooper6334:但是我希望的是app能主動打開螢幕 04/15 16:49
cooper6334:喔而且內建的鬧鐘好像是綁在螢幕鎖上的,一整個很神奇 04/15 20:42
lausai:你有加上ACQUIRE_CAUSES_WAKEUP flag嗎 @@? 04/15 22:01
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)