Android 将应用程序中的图像附加到gmail并共享

Android 将应用程序中的图像附加到gmail并共享,android,Android,我只想使用gmail从应用程序共享我的图像。 以下是我的代码: if (id == R.id.menu_item_share) { Intent sharingIntent = new Intent(Intent.ACTION_SEND); sharingIntent.setType("image/png"); sharingIntent.putExtra(Intent.EXTRA_EMAIL,`enter code here` new Strin

我只想使用
gmail
从应用程序共享我的图像。 以下是我的代码:

if (id == R.id.menu_item_share) {
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    sharingIntent.setType("image/png");
    sharingIntent.putExtra(Intent.EXTRA_EMAIL,`enter code here`
            new String[] { "bipush.osti@gmail.com" });
    sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
    sharingIntent.putExtra(Intent.EXTRA_TEXT, "compose mail");
    sharingIntent.putExtra(Intent.EXTRA_STREAM, targetUri);
    startActivity(Intent.createChooser(sharingIntent, "Share image using"));

}


如何修改代码此方法允许您共享单个应用程序的数据

      public void share(String nameApp, String imagePath, String message) {
        try {
            List<Intent> targetedShareIntents = new ArrayList<Intent>();
            Intent share = new Intent(android.content.Intent.ACTION_SEND);
            share.setType("image/jpeg");
           share.putExtra(Intent.EXTRA_EMAIL,`enter code here`
            new String[] { "bipush.osti@gmail.com" });
          share.putExtra(Intent.EXTRA_SUBJECT, "subject");
          share.putExtra(Intent.EXTRA_TEXT, "compose mail");
            List<ResolveInfo> resInfo = getPackageManager()
                    .queryIntentActivities(share, 0);
            if (!resInfo.isEmpty()) {
                for (ResolveInfo info : resInfo) {
                    Intent targetedShare = new Intent(
                            android.content.Intent.ACTION_SEND);
                    targetedShare.setType("image/jpeg"); // put here your mime
                                                            // type
                    if (info.activityInfo.packageName.toLowerCase().contains(
                            nameApp)
                            || info.activityInfo.name.toLowerCase().contains(
                                    nameApp)) {
                        targetedShare.putExtra(Intent.EXTRA_SUBJECT,
                                "Sample Photo");
                        targetedShare.putExtra(Intent.EXTRA_TEXT, message);
                        targetedShare.putExtra(Intent.EXTRA_STREAM,
                                Uri.fromFile(new File(imagePath)));
                        targetedShare.setPackage(info.activityInfo.packageName);
                        targetedShareIntents.add(targetedShare);
                    }
                }
                Intent chooserIntent = Intent.createChooser(
                        targetedShareIntents.remove(0), "Select app to share");
                chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
                        targetedShareIntents.toArray(new Parcelable[] {}));
                startActivity(chooserIntent);
            }
        } catch (Exception e) {
            Log.v("VM",
                    "Exception while sending image on" + nameApp + " "
                            + e.getMessage());
        }
    }
您还可以通过更改名称来与其他应用程序共享

share("facebook",filePath.toString(),"your comment");
share("twitter",filePath.toString(),"your comment");

尝试设置type
message/rfc822
而不是
image/png

您必须提及要处理它的应用程序的包名。要通过Gmail应用程序发送,请添加以下行

sharingIntent.setPackage("com.google.android.gm");

您只能使用ACTION_SENDTO constant打开邮件客户端。因此,若要附加映像文件,我需要写入文件名或路径?所需映像未获取AttacheEdit需要文件的绝对路径
sharingIntent.setPackage("com.google.android.gm");