gpt4 book ai didi

android - Android 上的屏幕键盘不会为第二语言发送正确的键码

转载 作者:行者123 更新时间:2023-11-29 01:43:03 26 4
gpt4 key购买 nike

我有带有 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 );
}

我将所有事件参数都设置为零。

我该如何解决这个问题?

最佳答案

KeyEvent文档说:

As soft input methods can use multiple and inventive ways of inputting text, there is no guarantee that any key press on a soft keyboard will generate a key event: this is left to the IME's discretion, and in fact sending such events is discouraged. You should never rely on receiving KeyEvents for any key on a soft input method. In particular, the default software keyboard will never send any key event to any application targetting Jelly Bean or later, and will only send events for some presses of the delete and return keys to applications targetting Ice Cream Sandwich or earlier.

关于android - Android 上的屏幕键盘不会为第二语言发送正确的键码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com