2012-02-27 3 views
0

Я написал простое приложение, таймер обратного отсчета, и я использую следующий код, чтобы включить экран, вибрировать и воспроизводить звуковой сигнал всякий раз, когда отсчет закончится:WakeLock поворачивает экран только тогда, когда зарядка

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(); 

Хотя это прекрасно работает, когда телефон заряжается, когда я отсоединяю зарядное устройство, он не включает экран, и я получаю вибрацию и сигнал тревоги, когда я включаю экран вручную, используя кнопку питания.

Когда я тестировал это на другом устройстве, кажется, он работает нормально.

Любые мысли?

ответ

0

Ваш код wl.acquire(1000); освободит wakelock после 1 секунды. Попробуйте этот код:

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

Я попробовал тоже, но это не делает разницы. Также попытался увеличить время до 5 секунд. –

+2

Странно. Возможно, вам стоит попытаться найти эту модель телефона. Может быть, есть ошибка? – Yury

+0

Может быть. Я попробую сделать еще несколько тестов на разных устройствах. –

0

Я использую это, который работает отлично

// set up wakelock 
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
WakeLock wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen"); 
wakelock.acquire(); 
Смежные вопросы