Android 安卓多按钮按键

Android 安卓多按钮按键,android,Android,在android应用程序中,当同时按下多个键时(如使用电源键和音量键启动恢复和下载模式),如何启动新活动 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)) { Intent intent = new Intent(this, SettingsActiv

在android应用程序中,当同时按下多个键时(如使用电源键和音量键启动恢复和下载模式),如何启动新活动

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN))
        {
            Intent intent = new Intent(this, SettingsActivity.class);
            startActivity(intent);
        }
        return true;
    }

试试下面的解决方案,它已经过测试,可以工作了

public class MainActivity extends AppCompatActivity {
    private boolean isVolumeUpPressed = false;
    private boolean isVolumeDownPressed = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onKeyDown(final int keyCode, final KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
            this.isVolumeDownPressed = true;
        } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
            this.isVolumeUpPressed = true;
        }
        if (this.isVolumeUpPressed && this.isVolumeDownPressed) {
            final Intent intent = new Intent(this, SettingsActivity.class);
            startActivity(intent);
        }
        return super.onKeyUp(keyCode, event);
    }

    @Override
    public boolean onKeyUp(final int keyCode, final KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
            this.isVolumeDownPressed = false;
        } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
            this.isVolumeUpPressed = false;
        }
        return super.onKeyUp(keyCode, event);
    }
}

在此示例中,将处理向上键和向下键。KeyEvent.KEYCODE\试试看。我同时按了音量增大和音量减小键,但什么也没发生!确保使用log运行onKeyDown。当我按键时,不会显示日志!非常感谢它的工作原理。你能告诉我如何组合音量增大+音量增大+音量减小+主页+电源+主页吗?@Pavle_nis不客气。你有多少个音量增大和主页按钮?XD两倍音量增大+音量减小+主屏幕+电源+主屏幕@Pavle_就是这样一个组合!怎么做?
public class MainActivity extends AppCompatActivity {
    private boolean isVolumeUpPressed = false;
    private boolean isVolumeDownPressed = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onKeyDown(final int keyCode, final KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
            this.isVolumeDownPressed = true;
        } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
            this.isVolumeUpPressed = true;
        }
        if (this.isVolumeUpPressed && this.isVolumeDownPressed) {
            final Intent intent = new Intent(this, SettingsActivity.class);
            startActivity(intent);
        }
        return super.onKeyUp(keyCode, event);
    }

    @Override
    public boolean onKeyUp(final int keyCode, final KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
            this.isVolumeDownPressed = false;
        } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
            this.isVolumeUpPressed = false;
        }
        return super.onKeyUp(keyCode, event);
    }
}