我开发了一个自定义键盘并在视图中添加了一些图像, 我的目标是将点击的图像直接发送到当前的应用程序(例如:消息应用程序或watsapp)。那么,我该如何实现这个?
答案 0 :(得分:0)
你现在不能以你想要的形式做到这一点。当前打开的应用程序和键盘之间的连接只接受文本(表情符号也是文本)。您可以做的是将Intent
发送到当前打开的应用程序,希望该应用程序能够处理:
public void passImage(String uri) {
Log.d(ImageKeyboard.class.getSimpleName(), "Image passed: " + uri);
Intent intent = createIntent(getApplicationContext(), getCurrentInputBinding(), uri);
try {
getApplicationContext().startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
public Intent createIntent (Context context, InputBinding inputBinding, String uri) {
String[] packageNames = context.getPackageManager().getPackagesForUid(inputBinding.getUid());
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sharingIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
sharingIntent.setType("image/*");
sharingIntent.setPackage(packageNames[0]);
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(uri));
return sharingIntent;
}
短信应用程序,Facebook和Gmail将以这种方式工作,但任何其他应用程序可能不会。这是你现在能做的最好的事情。
重要信息: 从Android 7.1 Developer Preview开始就有可能。来自网站的信息:
Android 7.1还将这些要求很高的开发人员功能添加到了 平台:
图片键盘支持 - 扩展用户可以从键盘输入的内容类型,让他们表达自己 通过自定义贴纸,GIF动画等。应用可以告诉你 键盘他们接受什么类型的内容,键盘可以提供 他们为用户提供的所有图像和其他内容。对于 广泛的兼容性,此API也将在支持中提供 库。