在 Android 里实现图文分享,Intent.ACTION_SEND 是最直接的办法。不过,纯文本和带图片的分享处理上有些小差别,下面分开说。
纯文字分享
private void shareContent() {
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
String title = "标题";
String extraText = "给大家介绍一个好网站";
share.putExtra(Intent.EXTRA_TEXT, extraText);
if (title != null) {
share.putExtra(Intent.EXTRA_SUBJECT, title);
}
startActivity(Intent.createChooser(share, "分享一下"));
}
这里 EXTRA_SUBJECT 可选,大多数邮件、短信类应用会把它当成标题显示。
同时分享图片与文字
带图片时,核心是用 EXTRA_STREAM 传一个 content:// 格式的 Uri,同时把 setType 设为 "image/*"。文字可以直接放在 EXTRA_TEXT,但部分应用(尤其一些国内社交 App)可能只认 sms_body,所以下面这种写法做了一点兼容:
private void share(String content, Uri uri) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
if (uri != null) {
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setType("image/*");
// 部分应用支持 sms_body 传递文字
shareIntent.putExtra(, content);
} {
shareIntent.setType();
}
shareIntent.putExtra(Intent.EXTRA_TEXT, content);
startActivity(Intent.createChooser(shareIntent, ));
}


