使用Android用自带系统分享功能(填坑,包括微博分享,多图片分享+文字)
来源:互联网 发布:江宁区广电网络营业厅 编辑:程序博客网 时间:2024/05/16 17:20
因公司需求,需要多图片+文字转发分享功能,因为第三方分享,比如友盟shareSDK,只能分享单张图片,所以只能用系统分享功能。还有填坑过程,供大家参考,也为自己做笔记。
直接上代码:
/** * * @param type 0微信朋友 分享,1微信朋友圈,2 QQ好友分享 , 3 qq空间分享 ,4新浪分享 * @param fileList 文件list,注意(是本地文件,网络图片需要上网下载到本地保存了才能分享) * @param context */ public static void startShare(int type,String content, List<File> fileList, Context context) { String mPackageName = ""; String mActivityName = ""; String uninstallTips = ""; switch (type){ case 0: //微信 mPackageName = "com.tencent.mm"; mActivityName = "com.tencent.mm.ui.tools.ShareImgUI"; uninstallTips = context.getResources().getString(R.string.wx_uninstallSoftware); break; case 1: //微信朋友圈 mPackageName = "com.tencent.mm"; mActivityName = "com.tencent.mm.ui.tools.ShareToTimeLineUI"; uninstallTips = context.getResources().getString(R.string.wx_uninstallSoftware); break; case 2: //qq好友分享 mPackageName = "com.tencent.mobileqq"; mActivityName = "com.tencent.mobileqq.activity.JumpActivity"; uninstallTips = context.getResources().getString(R.string.qq_uninstallSoftware); break; case 3: //QQ空间,貌似我找不到qq空间的分享,所以暂时不支持 uninstallTips = "暂时不支持"; break; case 4: //新浪分享 mPackageName = "com.sina.weibo"; mActivityName = "com.sina.weibo.EditActivity"; uninstallTips = context.getResources().getString(R.string.sina_uninstallSoftware); break; } if (!uninstallSoftware(context, mPackageName)) { Toast.makeText(context,uninstallTips, Toast.LENGTH_SHORT).show(); return; } ArrayList<Uri> uriList = new ArrayList<>(); for (File file : fileList){ uriList.add(Uri.fromFile(file)); } Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE); if (type == 4){ //如果是新浪微博就不用设置activity接收(重点,因为部分微博客户端是不需要设置的,否则会显示无法打开微博客户端) shareIntent.setPackage(mPackageName); }else { shareIntent.setClassName(mPackageName, mActivityName); } shareIntent.putExtra(Intent.EXTRA_TEXT, content); shareIntent.putExtra("Kdescription", content); //设置该属性就能设置分享文本内容 //shareIntent.putExtra(Intent.EXTRA_STREAM, uriList.get(0)); //单张图片分享 shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList); //多张图片 shareIntent.setType("image/*"); context.startActivity(Intent.createChooser(shareIntent, "Share images to..")); } /** * 检测客户端有木有安装 * @param context * @param packageName * @return */ private static boolean uninstallSoftware(Context context, String packageName) { PackageManager packageManager = context.getPackageManager(); try { PackageInfo packageInfo = packageManager.getPackageInfo(packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); if (packageInfo != null) { return true; } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return false; }
0 0
- 使用Android用自带系统分享功能(填坑,包括微博分享,多图片分享+文字)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- android 系统自带分享文字+图片到微信朋友圈
- 调用android自带分享功能,分享图片文字等信息。
- android系统自带的分享功能
- Android 自带的系统分享功能
- Android分享---调用系统自带的分享功能
- 社交分享(一)系统自带分享功能
- 安卓调用系统自带分享功能分享文字,分享大图片,仿好奇心日报分享长图片(不用申请微信微博官方sdk就能直接分享)
- Android系统自带分享
- 使用 iOS6 自带的 social.framework 实现分享文字图片等到新浪微博,twitter,
- LINE分享android利用系统自带分享实现LINE分享功能
- LINE分享android利用系统自带分享实现LINE分享功能
- iOS 系统自带分享包括(新浪微博 腾讯微博 Twitter Facebook LinkedIn)
- iOS - 系统自带的分享功能
- 图论 ----- 最短路径
- HDU5943 Kingdom of Obsession(匹配问题)
- apicloud数据交互mcm模块
- 5.题目:输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果 提示:0 ^ 0 = 0; 1 ^ 1 = 0;
- 模拟信号、数字信号,信号是如何被处理的?
- 使用Android用自带系统分享功能(填坑,包括微博分享,多图片分享+文字)
- (POJ 2259) Team Queue 队列的应用 (队列的队列)
- Android-自定义view之圆形与“半圆形”菜单
- 文件IO基础知识
- android之Intent机制详解
- python实现stack(栈)和队列(queue)
- 1+2!+3!+...n!
- Hive之管理表 外部表 分区表
- Spring IOC