Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
16lz
2021-01-23
Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
标签: Android系统分享QQ分享朋友圈图文分享 2016-09-27 22:54 279人阅读 评论(0) 收藏 举报 分类: Android(20)版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,请与我联系( QQ:3290985311)朱小姐。
1.调用系统分享
根据每个手机的情况不同,打开的分享面板内容也是不一样的。其实本质上,分享的目标app是插件化开发,这样调用分享的时候,才能打开对应的Activity,而不需要打开一个完整的app进程。
[java] view plain copy
- /**
- * 调用本地分享文本
- */
- private void showLocationShare(int request) {
- Intent sendIntent = new Intent();
- sendIntent.setAction(Intent.ACTION_SEND);
- sendIntent.putExtra(Intent.EXTRA_TEXT, "这是分享的内容!");//注意:这里只是分享文本内容
- sendIntent.setType("text/plain");
- startActivityForResult(sendIntent, request);
- }
2.指定app分享
首先要知道app的包名和Activity的名称。通过以下方法获得手机上全部可用于分享的app的包名和Activity名称。
[java] view plain copy
- Intent share = new Intent(android.content.Intent.ACTION_SEND);
- PackageManager packageManager = getPackageManager();
- List
list=packageManager.queryIntentActivities(share, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); - for(ResolveInfo info:list){
- MyUtils.log(""+info.activityInfo.packageName+"---"+info.activityInfo.name);
- }
[java] view plain copy
- Intent sendIntent = new Intent();
- sendIntent.setAction(Intent.ACTION_SEND);
- sendIntent.putExtra(Intent.EXTRA_TEXT, shareTittle + "\n" + shareContent + "\n" + shareUrl);
- sendIntent.setType("text/plain");
- // sendIntent.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");//微信朋友
- // sendIntent.setClassName("com.tencent.mobileqq", "cooperation.qqfav.widget.QfavJumpActivity");//保存到QQ收藏
- // sendIntent.setClassName("com.tencent.mobileqq", "cooperation.qlink.QlinkShareJumpActivity");//QQ面对面快传
- // sendIntent.setClassName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.qfileJumpActivity");//传给我的电脑
- sendIntent.setClassName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.JumpActivity");//QQ好友或QQ群
- // sendIntent.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");//微信朋友圈,仅支持分享图片
- startActivityForResult(sendIntent, QUN_QUEST);
3.Android系统分享-微信朋友圈分享
[java] view plain copy
- Bitmap decodeRecource = BitmapFactory.decodeResource(getResources(), R.drawable.app_icon);
- File file = writeFileByBitmap2(decodeRecource);
- Uri img = Uri.fromFile(file);//获得一张图片的Uri
[java] view plain copy
- Intent send = new Intent();
- send.setAction(Intent.ACTION_SEND);
- send.putExtra(Intent.EXTRA_STREAM, img);
- send.setType("image/*");
- send.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");//微信朋友圈,仅支持分享图片
- startActivityForResult(send, WX_QUEST);
[java] view plain copy
- ArrayList
uriList = new ArrayList(); - uriList.add(img);
- uriList.add(img);
- Intent send = new Intent();
- "color:#ff6666;">send.setAction(Intent.ACTION_SEND_MULTIPLE);
- send.putExtra(Intent.EXTRA_STREAM, uriList);
- send.setType("image/*");
- send.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");//微信朋友圈,仅支持分享图片
- startActivityForResult(send, WX_QUEST);
微信分享图片+文字
用上面的方法添加图片分享,如果要添加文字,再添加一句代码就可以
[java] view plain copy
- send.putExtra("color:#ff0000;">Kdescription", shareContent+shareUrl);
更多相关文章
- Android底下多线程下载远程图片
- Android APP内存优化之图片优化
- Android BSP成长计划随笔之虚拟设备搭建和input系统
- VisionMobile:移动平台生态系统冲突报告(八)Chapter C:Android(下)
- Android 使用Glide4.9 压缩并保存图片(jpg/png/gif)到本地
- Ubuntu编译Android系统源码问题记录
- Android中ListView使用- 网络图片的异步加载