android中非拉丁字符的识别

android中非拉丁字符的识别,android,keycode,onkeydown,non-latin,Android,Keycode,Onkeydown,Non Latin,我正在尝试在我的android活动中获取按键的代码 @Override public boolean onKeyDown(int keyCode, KeyEvent event){ char ch = (char) event.getUnicodeChar(); return super.onKeyDown(keyCode, event); } 但键盘代码并不取决于键盘布局。 对于拉丁字符,它可以正常工作,但对于非拉丁字符,例如“П”、“Б”、“б”(俄语)keyCode会从按

我正在尝试在我的android活动中获取按键的代码

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    char ch = (char) event.getUnicodeChar();
    return super.onKeyDown(keyCode, event);
}
但键盘代码并不取决于键盘布局。 对于拉丁字符,它可以正常工作,但对于非拉丁字符,例如“П”、“Б”、“б”(俄语)keyCode会从按下的键返回拉丁符号的代码。看起来,按键代码只取决于按键,而不是键盘布局

这样,带有拉丁符号G的键将为每个键盘布局返回G的键码


如何解决此问题?

您是否尝试过使用此处描述的KeyCharacterMap?见:


keyCharacterMap等待整数键码。公共布尔onKeyDown(int-keyCode,KeyEvent事件){KeyCharacterMap km=KeyCharacterMap.load(KeyCharacterMap.FULL);setNotification(“+km.getDisplayLabel(keyCode));return super.onKeyDown(keyCode,event);}但此键码对于所有键盘布局都是相同的。数据状态用于alt、ctrl、caps等键,不适用于键盘布局(语言)