当手机处于深度睡眠模式时,我试图捕捉音量增大/减小按下事件。我已经阅读了几篇文章,在这里我做了什么。
在活动onCreate
方法中,我设置了一个WakeLock
PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();
我已经读过,即使我的屏幕被锁定,如果我设置了这个,我的应用程序也会响应事件。我还向 Android Manifest 添加了权限。
<uses-permission android:name="android.permission.WAKE_LOCK" />
然后在onCreate
方法中我声明我的广播接收器
VolReceiver volumeBroadcastReceiver = new VolReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
registerReceiver(volumeBroadcastReceiver, filter);
这一切都很好,然后应用程序处于前台或后台,但是然后我通过按下电源按钮应用程序停止接收广播事件来锁定我的手机屏幕,我认为PowerManager
必须解决这个问题,但事实并非如此。所以请帮助我,提供一些信息。