音量按钮监听器即使屏幕关闭并锁定

b-b*_*1ft 10 service android volume broadcastreceiver android-activity

可能重复:
在后台服务中收听音量按钮?

即使锁定的屏幕和显示器已关闭,我也希望收听应用程序中的音量键更改.服务一直运行的主要问题(在唤醒锁的帮助下),但我只能用我的方法读取音量变化.

如果我使用一直运行的服务(即使屏幕锁定并关闭显示)我也有问题.在这篇文章的帮助下,它有广播接收器用于音量变化.

public BroadcastReceiver MediaButton_Receiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context context, Intent intent) {
        KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
        if (event == null) {
            return;
        }
        int action = event.getAction();
        if (action == KeyEvent.KEYCODE_VOLUME_DOWN) {
            Log.d(TAG,"VOLUME_DOWN Pressed");   
        }
    };
};
Run Code Online (Sandbox Code Playgroud)

event在服务中始终为null.它仅在更改音量时调用.屏幕关闭时,BroadcastReceiver也不起作用.

另一种方法是使用带有覆盖的Activity,dispatchKeyEvent()但我的Activity只运行一点,我试过唤醒锁,它没有帮助.我仍然不确定它是否适用于锁定的屏幕.我在互联网上搜索过但我找不到答案.

即使锁定并关闭屏幕,我是否可以创建一个按下音量按钮的活动?或者我能以某种方式使用该服务吗?