【发布时间】:2015-08-15 22:40:36
【问题描述】:
我正在尝试创建一个简单的手电筒应用程序
我想要的是,每当用户按 KEYCODE_VOLUME_DOWN 2 次或单次时,我想打开手电筒,或者每当用户按 KEYCODE_POWER 2 次时
可以在任何地方完成,即我的应用是否打开,或者屏幕是否关闭?
出于测试目的,我只是显示 Toast 通知,但我无法覆盖 KEYCODE_POWER ,如何覆盖 KEYCODE_POWER ?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode){
case KeyEvent.KEYCODE_POWER:
Toast.makeText(this,"Power Down pressed", Toast.LENGTH_SHORT).show();
textview1.setText("Power Button Pressed");
return true;
case KeyEvent.KEYCODE_VOLUME_UP:
//event.startTracking();
Toast.makeText(this, "Volume Up Pressed", Toast.LENGTH_SHORT).show();
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
Toast.makeText(this,"Volume Down pressed", Toast.LENGTH_SHORT).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
【问题讨论】:
-
看看这篇文章可能会得到帮助click here
-
@Clairvoyant 很好,我认为这是一种技巧,无论如何我会尝试从那个链接中找出一些东西,这很有帮助,你能告诉我我该怎么做吗无论我的应用程序是打开还是关闭,都意味着在任何屏幕上,如果用户按音量增大或减小 2 次或 3 次,应该做些什么?
-
制作整数变量并在 keydown 方法中为所需条件递增它们并检查值是否大于等于 2 如果为真则按下按钮两次然后将变量值再次设为零它将再次增加到 2
-
@Clairvoyant 好的,我明白了,谢谢,但我的问题是如何在任何屏幕上执行您所写的上述操作,我的意思是用户不应该运行我的应用程序,比如像这个应用程序这样的后台服务play.google.com/store/apps/…
-
你无法处理服务中的关键事件
标签: android android-studio overriding android-button