2014-09-04 67 views
0

我正在製作一個應用程序,當用戶按下音量鍵的某種組合時,我想發送某種短信警報。我在廣播接收機中接收音量按鍵事件時,它在設備和鍵盤未鎖定時工作正常,但設備鎖定(屏幕關閉)音量按鍵事件不起作用。我想這個代碼我的廣播接收機的onReceive()方法中如何解鎖設備和鍵盤從android廣播接收機?

private void wakeUpScreenAndRelaeseLock(Context context) 
{ 
    PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); 
    WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); 
    wakeLock.acquire(); 

    KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); 
    KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); 
    keyguardLock.disableKeyguard(); 
    wakeLock.release(); 
} 

還我已經添加在AndroidManifest.xml這兩個文件的權限

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 

請幫我找出這個問題..謝謝!

回答

0

如果設備處於深度睡眠音量按鍵不喚醒,所以你不會收到廣播通知。你無能爲力,這種行爲是深度睡眠的關鍵。

爲了實現你想要的應用程序必須保持至少部分喚醒鎖。

+0

感謝您的回覆..但是當我們在背景中播放音樂播放器並且設備被鎖定時,我們可以在音量上/下類似的事情發生在我的應用程序中,我該如何實現? – 2014-09-04 10:09:37

+0

當音樂在後臺播放時,設備不處於深度睡眠狀態 - 音樂播放器持有喚醒鎖。 – Okas 2014-09-04 10:19:05