2012-02-27 23 views
0

只有當我寫了一個簡單的倒數計時器的應用程序,我用下面的代碼來打開屏幕,振動和播放警報聲,每當倒計時結束:激活鎖定打開屏幕上充電

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
Vibrator v = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); 
RingTone r = RingtoneManager.getRingtone(mContext, notification); 
WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "Countdown Timer"); 

wl.acquire(1000); 

v.vibrate(pattern, -1);  
r.play(); 

雖然這在手機充電時可以正常工作,但當我斷開充電器時,wakelock不會打開屏幕,只有使用電源按鈕手動打開屏幕時,我纔會發出振動和警報。

當我在不同的設備上測試它時,它似乎工作正常。

有什麼想法?

回答

0

您的代碼wl.acquire(1000);將在1秒後釋放喚醒鎖。試試這個代碼:

wl.acquire(); 
v.vibrate(pattern, -1);  
r.play(); 
w1.release(); 
+1

我試過太多,但它不會有所作爲。也嘗試增加時間到5秒。 – 2012-02-27 20:26:45

+2

這很奇怪。也許你應該嘗試爲你的手機型號尋找這個。也許有一個錯誤? – Yury 2012-02-27 20:39:22

+0

可能。我會嘗試在不同的設備上做更多的測試。 – 2012-02-27 21:05:39

0

我使用這個工作正常

// set up wakelock 
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
WakeLock wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen"); 
wakelock.acquire();