3

在我的应用程序中,我的要求是同时发送图像和文本。所以我使用下面的代码

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_TEXT, "My photos");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///"+f));                       
startActivity(Intent.createChooser(share, "Share Image"));

但只发送图像,但不发送文本。我怎么解决这个问题?

4

3 回答 3

2

您将其设置MIME type为这Intent就是image为什么只发送图像的原因。这样的事情将解决您的问题:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("*/*");
share.putExtra(Intent.EXTRA_TEXT, "My photos");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///"+f));                       
startActivity(Intent.createChooser(share, "Share Image"));
于 2014-06-02T09:58:58.680 回答
2

请试试这个

//假设uris是一个Uri列表

Intent intent = null;
if (uris.size > 1){
intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
} else if (uris.size() == 1) {
intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, uris.get(0));}
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_TEXT, "Some message");
startActivity(Intent.createChooser(intent,"compatible apps:"));
于 2014-06-02T10:49:41.030 回答
1
String message= "My photos";
URI = Uri.parse("file://" + f);
Intent share = new Intent(android.content.Intent.ACTION_SEND);
       share.setType("*/*");
       if (URI != null) {
        share.putExtra(Intent.EXTRA_STREAM, URI);
    }
       share.putExtra(android.content.Intent.EXTRA_TEXT, message);
startActivity(Intent.createChooser(share, "Share Image"));

这种方式应该没问题。

于 2014-06-02T10:21:15.187 回答