我有带有 NativeActivity 的应用程序。
我希望显示屏幕键盘并聆听按下的键。当我输入英文时一切正常,但是当我将键盘切换到俄语时,我只收到键码、元状态等的零。
要显示键盘,我使用以下代码:
InputMethodManager imm = (InputMethodManager) activity.getSystemService( Context.INPUT_METHOD_SERVICE );
View view = activity.getWindow( ).getDecorView( );
imm.showSoftInput( view, 0 );
我在 NativeActivity 的 onInputEvent 函数中接收键盘事件:
int32_t eventType = AInputEvent_getType( event );
if( eventType == AINPUT_EVENT_TYPE_KEY )
{
int32_t keyAction = AKeyEvent_getAction( event );
int32_t keyCode = AKeyEvent_getKeyCode( event );
int32_t repeatCount = AKeyEvent_getRepeatCount( event );
int32_t keyFlags = AKeyEvent_getFlags( event );
int32_t keyScanCode = AKeyEvent_getScanCode( event );
int32_t keyMetaState = AKeyEvent_getMetaState( event );
LOGW( "EventType = AINPUT_EVENT_TYPE_KEY, keyAction = %d, keyCode = %d, repeatCount = %d, keyFlags = %d, keyScan = %d, keyMeta = %d", keyAction, keyCode, repeatCount, keyFlags, keyScanCode, keyMetaState );
}
而且我将所有事件参数都设为零。
我该如何解决这个问题?