Android输入法/自定义表情

Android输入法/自定义表情,android,keyboard,Android,Keyboard,我正在尝试为Android创建一个自定义IME,自定义表情符号实际上只是按键上显示的图像 使用KeyboardActionListener InputConnection ic = getCurrentInputConnection(); ic.commitText(String.valueOf(code),1); 然而,发送图像是相当具有挑战性的。我在SO()和其他一些示例中看到了许多答案建议的键盘示例,它总是使用类似的方法: Spanned cs = Html.fromHtml("&

我正在尝试为Android创建一个自定义IME,自定义表情符号实际上只是按键上显示的图像

使用
KeyboardActionListener

InputConnection ic = getCurrentInputConnection();
ic.commitText(String.valueOf(code),1);   
然而,发送图像是相当具有挑战性的。我在SO()和其他一些示例中看到了许多答案建议的键盘示例,它总是使用类似的方法:

Spanned cs = Html.fromHtml("<img src ='"+ index +"'/>", imageGetter, null);         
int cursorPosition = content.getSelectionStart();       
content.getText().insert(cursorPosition, cs);
span cs=Html.fromHtml(“,imageGetter,null);
int cursorPosition=content.getSelectionStart();
content.getText().insert(游标位置,cs);
虽然如果聚焦文本字段是程序员创建的活动的一部分,这似乎可以很好地工作,但它不适用于操作系统文本字段(例如,当试图将图像添加到我正在编写的电子邮件中时,它会添加一个空方块而不是图像)

我还尝试了其他方法在按下时从虚拟键盘发送自定义图像。我尝试使用剪贴板复制粘贴图像和链接的二进制文件,但没有成功

在将图像保存到媒体库后,我尝试将其与意图一起发送。这样效果更好,用户可以选择要接收图像的应用程序,当应用程序接收图像时,图像会正确显示。但是,它总是创建一条新消息。例如,我在电子邮件应用程序中,打开自定义键盘并选择图像。这将启动intent,从而带来选择器。我选择“邮件”,图像将被添加到新邮件中,而不是我当前正在编辑的邮件中

我现在没有什么想法了。甚至可以在虚拟键盘上显示自定义表情符号/图像,并以可靠的方式将其发送到操作系统应用程序吗