Android自定义键盘,发送媒体

时间:2016-10-12 12:09:21

标签: android android-studio keyboard android-softkeyboard ime

我开发了一个自定义键盘并在视图中添加了一些图像, 我的目标是将点击的图像直接发送到当前的应用程序(例如:消息应用程序或watsapp)。那么,我该如何实现这个?

1 个答案:

答案 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也将在支持中提供   库。