Android Intent分享文件|分享图片|分享文字|功能的实现
来源:互联网 发布:手机淘宝邮箱注册 编辑:程序博客网 时间:2024/04/30 06:18
- Android Intent 实现分享功能。可分享图片,文件,文字给QQ好友,微信好友,短信联系人。
- 如我所知:网上已经有一大堆这样相关的资料。但是有些不幸的是:没有看到一个完整的,比较全面的,可以直接拿来使用的工具类。于是,我结合网上找的这些资料,做了一个简单的整合,以便使用。
- 废话就不多说了,直接上代码:
package com.xxx.ggg.Media.mediaUtils;import java.io.File;import java.util.ArrayList;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Parcelable;import android.webkit.MimeTypeMap;import com.xxx.ggg.R;public class ShareUtils { /** * * 分享功能|分享单张图片 * * @param context * 上下文 * @param activityTitle * Activity的名字 * @param msgTitle * 消息标题 * @param msgText * 消息内容 * @param imgPath * 图片路径,不分享图片则传null * */ public static void shareMsg(Context context, String activityTitle, String msgTitle, String msgText, String imgPath) { Intent intent = new Intent(Intent.ACTION_SEND); if (imgPath == null || imgPath.equals("")) { intent.setType("text/plain"); // 纯文本 } else { File f = new File(imgPath); if (f != null && f.exists() && f.isFile()) { intent.setType("image/jpg"); Uri u = Uri.fromFile(f); intent.putExtra(Intent.EXTRA_STREAM, u); } } intent.putExtra(Intent.EXTRA_SUBJECT, msgTitle); intent.putExtra(Intent.EXTRA_TEXT, msgText); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(Intent.createChooser(intent, activityTitle)); } /** * 分享多张照片 * * @param context * @param list * ArrayList<ImageUri> */ public static void sendMultiple(Context context, ArrayList<? extends Parcelable> list) { Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.setType("image/*"); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, list); intent.putExtra(Intent.EXTRA_SUBJECT, ""); intent.putExtra(Intent.EXTRA_TEXT, ""); intent.putExtra(Intent.EXTRA_TITLE, ""); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(Intent.createChooser(intent, context .getResources().getString(R.string.tv_sendSelect))); } /** * <ul> * <li>分享任意类型的<b style="color:red">单个</b>文件|不包含目录</li> * <li>[<b>经验证!可以发送任意类型的文件!!!</b>]</li> * <li># @author http://blog.csdn.net/yuxiaohui78/article/details/8232402</li> * <ul> * * @param context * @param uri * Uri.from(file); * */ public static void shareFile(Context context, Uri uri) { // File file = new File("\sdcard\android123.cwj"); //附件文件地址 Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra("subject", ""); // intent.putExtra("body", ""); // 正文 intent.putExtra(Intent.EXTRA_STREAM, uri); // 添加附件,附件为file对象 if (uri.toString().endsWith(".gz")) { intent.setType("application/x-gzip"); // 如果是gz使用gzip的mime } else if (uri.toString().endsWith(".txt")) { intent.setType("text/plain"); // 纯文本则用text/plain的mime } else { intent.setType("application/octet-stream"); // 其他的均使用流当做二进制数据来发送 } context.startActivity(intent); // 调用系统的mail客户端进行发送 } /** * <ul> * <li>分享任意类型的<b style="color:red">多个</b>文件|不包含目录</li> * <li>[<b>经验证!可以发送任意类型的文件!!!</b>]</li> * <li># @author http://blog.csdn.net/yuxiaohui78/article/details/8232402</li> * <ul> * * @param context * @param uris * list.add(Uri.from(file)); * */ public static void shareMultipleFiles(Context context, ArrayList<Uri> uris) { boolean multiple = uris.size() > 1; Intent intent = new Intent( multiple ? android.content.Intent.ACTION_SEND_MULTIPLE : android.content.Intent.ACTION_SEND); if (multiple) { intent.setType("*/*"); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); } else { Uri value = uris.get(0); String ext = MimeTypeMap.getFileExtensionFromUrl(value.toString()); String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext); if(mimeType==null){ mimeType = "*/*"; } intent.setType(mimeType); intent.putExtra(Intent.EXTRA_STREAM, value); } context.startActivity(Intent.createChooser(intent, "Share")); }}
以上,便是所谓的分享功能。很类似发送文件给qq好友这样。
0 0
- Android Intent分享文件|分享图片|分享文字|功能的实现
- Android实现分享图片和文字的功能
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android 文字和图片分享功能
- android分享图片文字
- iOS开发实现文字/图片的社交网络分享功能
- android开发步步为营之103:android分享音频视频图片和文字功能的实现
- Android实现文字分享
- 分享的Intent实现
- 完美实现同时分享图片和文字(Intent.ACTION_SEND)
- 完美实现同时分享图片和文字(Intent.ACTION_SEND)
- 完美实现同时分享图片和文字(Intent.ACTION_SEND)
- Android:新浪微博拉起客户端分享——完美实现同时分享图片和文字(Intent.ACTION_SEND)
- android分享功能的实现
- android分享功能的实现
- jsp用过滤器解决中文乱码
- Learn-OpenGL基础书籍推荐
- 《Machine Learning -- Andrew Ng》之 Overfitting
- 百度网盘4.1.0汇编修改删除文件时的对话框
- 初入职场之心态和为人处世
- Android Intent分享文件|分享图片|分享文字|功能的实现
- IE6 PNG透明终极解决方案
- Jesus Is Here(2015年吉林网络赛)
- android的存储
- 使用自定义Session监听器实现自定义Session管理
- HDU 5464 Clarke and problem(01背包)
- 【HNOI2011】数矩形
- 轻松学会android中补间动画
- 增强for循环