Android 仅从代码使用的KeyCharacterMap

Android 仅从代码使用的KeyCharacterMap,android,input,Android,Input,我需要在我的Android应用程序中插入一个特殊字符,该字符不包含在任何现有的KeyCharacterMap文件中。生成关键事件是在不知道是哪一个的情况下获得任何主动控制的唯一方法 要加载此映射以从中生成KeyEvent,我必须指定映射的id,但此id来自InputDevice,并且新生成的kcm文件没有此类设备 在没有现有inputdevice的情况下使用此密钥映射或伪造inputdevice的最佳方法是什么?我相信您可以使用此解决方案生成特殊密钥: char[] szRes = szStri

我需要在我的Android应用程序中插入一个特殊字符,该字符不包含在任何现有的KeyCharacterMap文件中。生成关键事件是在不知道是哪一个的情况下获得任何主动控制的唯一方法

要加载此映射以从中生成KeyEvent,我必须指定映射的id,但此id来自InputDevice,并且新生成的kcm文件没有此类设备


在没有现有inputdevice的情况下使用此密钥映射或伪造inputdevice的最佳方法是什么?

我相信您可以使用此解决方案生成特殊密钥:

char[] szRes = szStringText.toCharArray(); // Convert String to Char arra

KeyCharacterMap CharMap;
if(Build.VERSION.SDK_INT >= 11) // My soft runs until API 5
  CharMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD);
else
  CharMap = KeyCharacterMap.load(KeyCharacterMap.ALPHA);

KeyEvent[] events = CharMap.getEvents(szRes);

for(int i=0; i<events.length; i++)
  MainWebView.dispatchKeyEvent(events[i]); // MainWebView is webview
char[]szRes=szStringText.toCharray();//将字符串转换为字符数组
KeyCharacterMap字符映射;
if(Build.VERSION.SDK_INT>=11)//我的软件运行到API 5
CharMap=KeyCharacterMap.load(KeyCharacterMap.VIRTUAL\u键盘);
其他的
CharMap=KeyCharacterMap.load(KeyCharacterMap.ALPHA);
KeyEvent[]events=CharMap.getEvents(szRes);

对于(int i=0;这是我所做的,但我需要的字符不是映射的一部分,因此不会从getEvents返回结果。我必须使用带有区域特定字符的本地键映射。我想要的是一种插入字符的方法,而不需要加载特殊键映射。