分享Intent.ACTION_SEND

时间:2014-02-18 11:55:45

标签: android image android-intent share

我很乐意与文字或网址分享图片。 我正在使用此代码,但我只是共享图像,更改“类型”的顺序使我分享两者,但仅作为电子邮件/ gmail 我究竟做错了什么?我的代码是:

EDIT1

Intent share = new Intent(Intent.ACTION_SEND_MULTIPLE);
           share.setType("*/*");
           share.putExtra(Intent.EXTRA_STREAM,               Uri.parse("file:///sdcard/Wallpaper/1.jpg"));
           share.putExtra(Intent.EXTRA_TEXT, "helloworld");
           startActivity(Intent.createChooser(share, (getApplicationContext().getString(R.string.condividi))));

3 个答案:

答案 0 :(得分:0)

也为文本指定MIME类型。 "text/plain"是文本数据MIME的类型。尝试使用"*/*"作为MIME,以便发送任何通用数据类型。

还可以尝试将ACTION_SEND更改为 ACTION_SEND_MULTIPLE ,专门用于投放多个数据。

有关ACTION_SEND_MULTPLE和处理MIME类型的更多信息:

http://developer.android.com/reference/android/content/Intent.html

答案 1 :(得分:0)

如果要发送多个文件,请使用以下代码: -

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putExtra(Intent.EXTRA_SUBJECT, "Add any subject");
intent.setType("image/*"); /* sharing any type of image. Modify to your need */

ArrayList<Uri> files = new ArrayList<Uri>();

for(String path : filesToSend /* List of images you want to send */) {
    File file = new File(path);
    Uri uri = Uri.fromFile(file);
    files.add(uri);
}

intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files); /* adding files to intent */
startActivity(intent);

答案 2 :(得分:0)

试试这个

File DoutFile = new File(path);

        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("image/*");

        share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(DoutFile));
        share.putExtra(Intent.EXTRA_TEXT,
                "" + getResources().getString(R.string.app_name));

        startActivity(Intent.createChooser(share, "Share Image"));