I want my app to support keyboard shortcuts. Many devices, such as Asus Transformer
have external keyboard which has Ctrl key (available on API Level 11). I've made some code, to check if Ctrl key works in emulator:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(Build.VERSION.SDK_INT>10 &&
event.getAction()==KeyEvent.ACTION_DOWN &&
event.isCtrlPressed()){
String actionType="NONE";
final int keyCode = event.getKeyCode();
switch(keyCode){
case KeyEvent.KEYCODE_C:
actionType = "COPY";
break;
case KeyEvent.KEYCODE_V:
actionType = "PASTE";
break;
case KeyEvent.KEYCODE_X:
actionType = "CUT";
break;
case KeyEvent.KEYCODE_R:
actionType = "REFRESH";
break;
case KeyEvent.KEYCODE_A:
actionType = "SELECT ALL";
break;
}
Toast.makeText(ctx, actionType, Toast.LENGTH_SHORT).show();
return true;
}
return super.dispatchKeyEvent(event);
}
不幸的是,它在模拟器中不起作用,我无法在真实硬件上检查它。
I have two questions:
1. Would it work on device like Asus Transformer
?
2. Why Ctrl key does not work in emulator?
编辑:我试图找到问题的答案或解决方案,但谷歌和SO都没有帮助。
1. 它可以在像 Asus Transformer 这样的设备上使用吗?
我已经检查过我的华硕变压器TF101带物理键盘(标准扩展坞Asus) and 你的代码工作正常。我认为您可以毫无问题地使用它。
2. 为什么CTRL键在模拟器中不起作用?
看着可以映射的按钮列表(例如使用emulator -keyset
)我认为当前版本的模拟器不支持直接Ctrl
键映射,所以你在这里运气不好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)