Android NDK密钥代码的移位映射是否已标准化?

时间:2016-08-16 15:39:59

标签: android android-ndk

我想知道是否有关于某些密钥代码如何通过Android NDK传递的官方参考。以问号(?)为例。 AFAICS,AKEYCODE_XXX中的问号没有keycodes.h定义。我做了一些测试,看起来问号键码实际上是以AKEYCODE_SLASH发送,并且已经开启,即AKeyEvent_getMetaState()设置了AMETA_SHIFT_ON标志。

其他密钥代码也是如此,这里有几个例子:

  • {AKEYCODE_LEFT_BRACKET发送,转移
  • }AKEYCODE_RIGHT_BRACKET发送,转移
  • :AKEYCODE_SEMICOLON发送,转移
  • >AKEYCODE_PERIOD发送,转移
  • <AKEYCODE_COMMA发送,转移

它似乎符合标准美国键盘上的映射。但是,有一些例外:

  • 在美国键盘上,*通常是通过按8加移位生成的;但是,Android对AKEYCODE_STAR字符
  • 有自己的*
  • 另外,在美国键盘上,+通常是通过按=加上移位生成的;但是,Android在此处有AKEYCODE_PLUS定义

长话短说,我想知道这种行为是否有官方解释。这是记录和标准化的行为吗?官方Android开发人员文档中是否有表格或其他内容,显示如果启用了班次,应如何处理某些密钥代码?即Android文档中是否有一个表格,如果启用了转换,则AKEYCODE_SEMICOLON必须被视为:?或者这是所有未记录的行为吗?

此外,如果此行为在所有Android版本和区域设置中保持一致,我感兴趣,例如上述的移位映射在中国的Android手机上也会适用吗?

最后,将移位与美国键盘上已经移位键的键组合起来怎么样?例如AKEYCODE_STARAKEYCODE_PLUS。是否也会发生那些随着移位而被发送并且它们是否必须被映射到一些其他键而不是它们?

我希望有人可以对此有所了解。谢谢!

0 个答案:

没有答案