您的位置:首页 > 移动开发 > Android开发

利用Android自带的API实现分享功能

2017-12-01 17:12 731 查看

前言

在做项目的过程中需要实现文字和图片的分享,有两种方式:

1. 使用android sdk中自带的Intent.ACTION_SEND实现分享。

2. 使用shareSDK、友盟等第三方的服务。

鉴于使用的方便,此次只介绍使用Android sdk中自带的方式来实现分享的功能。

分享文字

/**
* 分享文字内容
*
* @param dlgTitle
*            分享对话框标题
* @param subject
*            主题
* @param content
*            分享内容(文字)
*/
private void shareText(String dlgTitle, String subject, String content) {
if (content == null || "".equals(content)) {
return;
}
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
if (subject != null && !"".equals(subject)) {
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
}

intent.putExtra(Intent.EXTRA_TEXT, content);

// 设置弹出框标题
if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定义标题
startActivity(Intent.createChooser(intent, dlgTitle));
} else { // 系统默认标题
startActivity(intent);
}
}


分享单张图片

/**
* 分享图片和文字内容
*
* @param dlgTitle
*            分享对话框标题
* @param subject
*            主题
* @param content
*            分享内容(文字)
* @param uri
*            图片资源URI
*/
private void shareImg(String dlgTitle, String subject, String content,
Uri uri) {
if (uri == null) {
return;
}
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, uri);
if (subject != null && !"".equals(subject)) {
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
}
if (content != null && !"".equals(content)) {
intent.putExtra(Intent.EXTRA_TEXT, content);
}

// 设置弹出框标题
if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定义标题
startActivity(Intent.createChooser(intent, dlgTitle));
} else { // 系统默认标题
startActivity(intent);
}
}


分享多张图片

//分享多张图片
public void shareMultipleImage(View view) {
ArrayList<Uri> uriList = new ArrayList<>();

String path = Environment.getExternalStorageDirectory() + File.separator;
uriList.add(Uri.fromFile(new File(path+"australia_1.jpg")));
uriList.add(Uri.fromFile(new File(path+"australia_2.jpg")));
uriList.add(Uri.fromFile(new File(path+"australia_3.jpg")));

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "分享到"));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android