我正在创建一个应用程序,并希望在按下音量按钮四次时执行某些操作。我这样做,工作正常。
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
count++;
if(count==4){
dosomething();
return true;
}
else
return false;
}
}
问题是我的应用程序是在后台运行的,因为服务并不打算对用户输入作出反应,所以在这里可以解决的问题是如何在用户输入时调用我的函数{}}}应用程序在后台。它是应用程序中最重要的部分,因为否则会破坏应用程序的目的。它不一定是一个音量按钮,如果家庭或任何其他工作,那么它也很好。如果有人能帮助我,我们将非常感激。
答案 0 :(得分:1)
以下是您可以做的事情:
你不能从KeyEvents
获得Service
。
但您可以使用BroadcastReceivers
来侦听特定内容
用户输入并在Service
。
看看以下内容:
Android BroadCastReceiver for volume key up and down
答案 1 :(得分:0)
Afaik,无法使用Service
截取音量按钮,主页,后退,电源按键。
正如@SMR建议您只能将BroadcastReceiver
用于音量和电源按钮。
BroadcastReceiver
- android.media.VOLUME_CHANGED_ACTION
在媒体量发生变化时执行。
但是当您的设备被锁定时,此接收器不会呼叫。如果要激活音量按钮,则必须在后台运行媒体文件,这不是一个好的解决方案。我建议你不要使用它来使音量按钮处于活动状态,因为它会耗尽设备的电池并改变设备的流行为。
您可以注册设备屏幕开启/关闭时执行的Screen_ON
和Screen_OFF
BroadcastReceiver
链接:http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/