gpt4 book ai didi

android - 在 Android 的 onKeyDown 上捕获回车键

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:25 24 4
gpt4 key购买 nike

我正在制作一个需要键盘的远程应用程序。我没有使用 EditText,我强制它以实用的方式调用。

在 Activity 中,我有一个半智能的 onKeyDown 代码,它将 android keycode 转换为我的服务器可处理的 ascii 代码并发送它:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) {
int asciiKey = -1;
if (keyCode >= KeyEvent.KEYCODE_A && keyCode <= KeyEvent.KEYCODE_Z) {
asciiKey = keyCode - KeyEvent.KEYCODE_A + 'A';
} else if (keyCode==KeyEvent.KEYCODE_DEL) {
asciiKey = 8;
} else if (keyCode==KeyEvent.KEYCODE_ENTER) {
asciiKey = 13;
} else {
asciiKey = event.getUnicodeChar(event.getMetaState());
}
out.println("k "+asciiKey);
return super.onKeyDown(keyCode, event);
}

但是当我按下 Enter 键时,它没有发送(我已经尝试过 Jelly Bean Default 和 Hacker's Keyboard)。甚至不是“-1”。该方法甚至没有被调用。它适用于大多数其他键(数字、字母、退格键、某些符号),因此它不是应用程序本身。

调用键盘并稍后隐藏它的代码:

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

有什么我想念的吗?此外,是否有更好的方法将 Android 键码转换为 Ascii 键(具体可由 java.awt.Robot 复制)。

提前感谢您的帮助。

最佳答案

也可以使用此函数来捕获回车键。

@Overridepublic boolean dispatchKeyEvent(KeyEvent event) {

try
{
//
if(event.getAction()== KeyEvent.ACTION_UP)
{
System.out.println(event.getAction() + " " + event.getKeyCode() + " - " + (char) event.getUnicodeChar());
}
}
catch (Exception ex)
{
ex.printStackTrace();
}

return true;
}

关于android - 在 Android 的 onKeyDown 上捕获回车键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17886213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com