Android 安卓多按钮按键
在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
@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);
}
}