10

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

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

如果我使用始终运行的服务(即使在锁定屏幕和关闭显示的情况下)我有问题。在这篇文章的帮助下,它具有用于音量变化的广播接收器。

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");   
        }
    };
};

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

另一种方法是使用具有覆盖功能的 Activity,dispatchKeyEvent()但我的 Activity 只运行了一点点,我尝试了唤醒锁,但没有帮助。而且我仍然不确定它是否适用于锁定的屏幕。我已经在整个互联网上进行了搜索,但我找不到答案。

我可以创建一个活动,即使在锁定和关闭屏幕的情况下也会按下音量按钮?或者我可以通过服务以某种方式做到这一点吗?

4

0 回答 0