如何创建一个监听音量按钮的服务?

3
我需要创建一个服务,它将在后台运行,在通知栏显示一个图标,监听音量按钮被按下的事件,并防止它们改变音量,以便不会听到令人烦恼的蜂鸣声。
您认为这可能吗?如果可以,应该从哪里开始?
谢谢!
编辑:
找到了适用于活动的代码片段,现在将尝试在服务中使用它。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
        switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_UP) {
                Toast.makeText(this, "UP", 1500).show();
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                Toast.makeText(this, "DOWN", 1500).show();
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
        }
    }

编辑2:在这里找到了一个很好的教程http://android.kgmoney.net/2010/05/08/creating-a-simple-android-service-for-background-processing/

我创建了一个服务,但是上面的代码似乎无法适用于它... 嗯...

1个回答

3

你觉得这可能吗?

不可能。在服务中无法监听音量按钮按下事件。


是的,就我所了解的情况而言,很不幸。您认为用户除了通过活动的方式之外,还有其他方法将信号传递给服务吗?也许小部件可以监听音量按钮,然后将其传递给服务? - Roger Travis
1
@user296516:只有前台活动可以拦截音量按钮按下事件。 - CommonsWare
@CommonsWare 怎么解决这个问题?有什么变通方法吗? - rupesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接