使用NativeActivity在android NDK中进行键盘输入

Jai*_*ina 5 keyboard android input android-ndk native-activity

我正在寻找一种从Android NativeActivity的软件键盘获取输入的方法。

我发现了这个,它提供了一些如何使软件键盘退出的示例代码(并且可以正常工作),但是缺乏一些兴趣点:

  1. 显示后如何获取键盘输入。
  2. 当用户使用后退按钮关闭键盘时,如何避免应用程序崩溃。

如果有人对这些问题有任何答案,或者有更好的答案,那就是不需要使用JNI的更简单的键盘显示方法,请分享。

提前致谢,

海梅

Jai*_*ina 5

如果有人想知道,您可以在分配给struct android_app的回调中以通常的方式访问键盘输入,在该回调中获取AInputEvents:

if (AInputEvent_getType(event) == AINPUT_EVENT_TYPE_KEY)
{
lint32_t key_val = AKeyEvent_getKeyCode(event);
fprintf("Received key event: %d\n", key_val);

if((key_val >= AKEYCODE_A && key_val <= AKEYCODE_Z))
{
    fprintf("Got a letter");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

您还可以通过检查诸如AKEYCODE_BACK或AKEYCODE_VOLUME_UP之类的键代码来访问其他“硬件”按钮。