背景按钮按下检测

时间:2017-12-28 17:47:54

标签: java android service background

我正在尝试构建一个Android应用程序,它可以检测按下背景上的按钮并播放声音或其他内容。对于演示,我正在尝试添加此方法

public boolean onKeyDown(int keyCode, KeyEvent event) {
    final MediaPlayer abc = MediaPlayer.create(this, R.raw.abc);
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        abc.start();
    }
    return super.onKeyDown(keyCode, event);
}

到这个班级

public class RSSPullService extends IntentService{
    public RSSPullService(){
        super("Nevermind me");
    }

    @Override
    protected void onHandleIntent(@Nullable Intent intent) {

    }
}

有什么东西可以帮助吗?我是Android开发和Java的新手。

1 个答案:

答案 0 :(得分:0)

在触摸Android手机时,没有任何键盘硬件。那么请指定您想要按哪个按钮?

编辑:

在Manifest fie中添加以下权限:

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />

并覆盖以下方法:

//To capture any short click of button
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_POWER) {
    // this is method which detect press even of button
    event.startTracking(); // Needed to track long presses
    return true;
}
    return super.onKeyDown(keyCode, event);
}


//To capture long press of power button
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_POWER) {
    // Here we can detect long press of power button
    return true;
}
    return super.onKeyLongPress(keyCode, event);
}