Nic*_*dal 5 android android-keypad android-hardware
我正在研究一种输入设备,它有一个按钮,当我按下它时,它既可以作为主页按钮,也可以作为设备上其他按钮的修改器.
我知道你可以使用其他按钮在kcm文件中执行此操作,并具有以下内容:
key ESCAPE {
base: fallback BACK
alt, meta: fallback HOME
ctrl: fallback MENU
}
Run Code Online (Sandbox Code Playgroud)
有可能有类似的东西:
key CTRL_LEFT {
base: fallback HOME
{SOMETHING HERE}: CTRL_LEFT
}
Run Code Online (Sandbox Code Playgroud)
这样我就可以用另一个按钮按下那个按钮,让它不会在HOME上回退?
提前致谢!:d
此功能在系统级别上是不可能的:请参阅 http://source.android.com/tech/input/key-character-map-files.html以获取所有可能选项的列表。
但是,如果您想在应用程序级别上使用它,您可以按如下方式对其进行编程:
import android.view.KeyEvent;
private boolean home = false;
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (event.getScanCode() == 29) //29 == CTRL_LEFT
home = true; //if we release this button, HOME needs to be invoked
else home = false; //so CTRL_LEFT was used as a modifier: no need to invoke HOME
//allow the system to pass key handling to the next listener
return super.onKeyUp(keyCode, event);
}
public boolean onKeyUp(int keyCode, KeyEvent event)
{
if (event.getScanCode() == 29 && home == true)
{
super.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME));
return true; //so we absorb the event
}
return super.onKeyUp(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
然后,只要将此应用程序设置为接收击键(通常是隐私问题,除非您自己编写代码),它就可以处理击键并在需要时调度 HOME 按钮。
如果您决定继续这样做,则必须删除
base: fallback HOME
Run Code Online (Sandbox Code Playgroud)
从你的代码。
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |