【问题标题】:Keyboard input in android NDK using NativeActivityandroid NDK 中使用 NativeActivity 的键盘输入
【发布时间】:2012-11-22 08:38:14
【问题描述】:

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

我找到了this,它提供了一些关于如何取出软件键盘的示例代码(并且可以正常工作),但缺少一些兴趣点:

  1. 如何在显示后获取键盘输入。
  2. 如何避免用户使用返回按钮关闭键盘时应用崩溃。

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

提前致谢,

詹姆

【问题讨论】:

    标签: android input keyboard android-ndk native-activity


    【解决方案1】:

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

    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;
    }
    

    您还可以通过检查 AKEYCODE_BACK 或 AKEYCODE_VOLUME_UP 等关键代码来访问其他“硬件”按钮。

    【讨论】:

      【解决方案2】:

      另一个需要检查的重要事项是按键动作(向上键、向下键或混合键),否则您将对 keyup 和 keydown 做出反应。以下是检查密钥的方法:

      if(AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_UP)
          fprintf("key up!");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-15
        • 2014-07-14
        • 1970-01-01
        • 2011-09-20
        • 1970-01-01
        相关资源
        最近更新 更多