2012-02-27 67 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();