我想知道是否有关于某些密钥代码如何通过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_STAR
和AKEYCODE_PLUS
。是否也会发生那些随着移位而被发送并且它们是否必须被映射到一些其他键而不是它们?
我希望有人可以对此有所了解。谢谢!