Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享

标签: Android系统分享QQ分享朋友圈图文分享   279人阅读  评论(0)  收藏  举报   分类: Android(20) 

1.调用系统分享

根据每个手机的情况不同,打开的分享面板内容也是不一样的。其实本质上,分享的目标app是插件化开发,这样调用分享的时候,才能打开对应的Activity,而不需要打开一个完整的app进程。

[java]  view plain  copy  
  1. /** 
  2.      * 调用本地分享文本 
  3.      */  
  4.     private void showLocationShare(int request) {  
  5.         Intent sendIntent = new Intent();  
  6.         sendIntent.setAction(Intent.ACTION_SEND);  
  7.         sendIntent.putExtra(Intent.EXTRA_TEXT, "这是分享的内容!");//注意:这里只是分享文本内容  
  8.         sendIntent.setType("text/plain");  
  9.         startActivityForResult(sendIntent, request);  
  10.     }  
调用系统的分享功能可以不用申请API集成,比较方便,但是不好的地方就是没有回调可以知道是否分享了,分享是否成功了。


2.指定app分享

首先要知道app的包名和Activity的名称。通过以下方法获得手机上全部可用于分享的app的包名和Activity名称。

[java]  view plain  copy  
  1. Intent share = new Intent(android.content.Intent.ACTION_SEND);  
  2.         PackageManager packageManager = getPackageManager();  
  3.         List list=packageManager.queryIntentActivities(share, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);  
  4.         for(ResolveInfo info:list){  
  5.             MyUtils.log(""+info.activityInfo.packageName+"---"+info.activityInfo.name);  
  6.         }  
得到包名和activity名称后,指定目标app分享。以QQ和微信举例。

[java]  view plain  copy  
  1. Intent sendIntent = new Intent();  
  2.             sendIntent.setAction(Intent.ACTION_SEND);  
  3.             sendIntent.putExtra(Intent.EXTRA_TEXT, shareTittle + "\n" + shareContent + "\n" + shareUrl);  
  4.             sendIntent.setType("text/plain");  
  5. //          sendIntent.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");//微信朋友  
  6. //          sendIntent.setClassName("com.tencent.mobileqq", "cooperation.qqfav.widget.QfavJumpActivity");//保存到QQ收藏  
  7. //          sendIntent.setClassName("com.tencent.mobileqq", "cooperation.qlink.QlinkShareJumpActivity");//QQ面对面快传  
  8. //          sendIntent.setClassName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.qfileJumpActivity");//传给我的电脑  
  9.             sendIntent.setClassName("com.tencent.mobileqq""com.tencent.mobileqq.activity.JumpActivity");//QQ好友或QQ群  
  10. //          sendIntent.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");//微信朋友圈,仅支持分享图片  
  11.             startActivityForResult(sendIntent, QUN_QUEST);  

3.Android系统分享-微信朋友圈分享

[java]  view plain  copy  
  1. Bitmap decodeRecource = BitmapFactory.decodeResource(getResources(), R.drawable.app_icon);  
  2.             File file = writeFileByBitmap2(decodeRecource);  
  3.             Uri img = Uri.fromFile(file);//获得一张图片的Uri  
分享单张图片到朋友圈

[java]  view plain  copy  
  1. Intent send = new Intent();  
  2.             send.setAction(Intent.ACTION_SEND);  
  3.             send.putExtra(Intent.EXTRA_STREAM, img);  
  4.             send.setType("image/*");  
  5.             send.setClassName("com.tencent.mm""com.tencent.mm.ui.tools.ShareToTimeLineUI");//微信朋友圈,仅支持分享图片  
  6.             startActivityForResult(send, WX_QUEST);  
分享多张图片到朋友圈

[java]  view plain  copy  
  1. ArrayList uriList = new ArrayList();  
  2.             uriList.add(img);  
  3.             uriList.add(img);  
  4.               
  5.             Intent send = new Intent();  
  6.             "color:#ff6666;">send.setAction(Intent.ACTION_SEND_MULTIPLE);  
  7.             send.putExtra(Intent.EXTRA_STREAM, uriList);  
  8.             send.setType("image/*");  
  9.             send.setClassName("com.tencent.mm""com.tencent.mm.ui.tools.ShareToTimeLineUI");//微信朋友圈,仅支持分享图片  
  10.             startActivityForResult(send, WX_QUEST);  

微信分享图片+文字

用上面的方法添加图片分享,如果要添加文字,再添加一句代码就可以

[java]  view plain  copy  
  1. send.putExtra("color:#ff0000;">Kdescription", shareContent+shareUrl);   

更多相关文章

  1. Android底下多线程下载远程图片
  2. Android APP内存优化之图片优化
  3. Android BSP成长计划随笔之虚拟设备搭建和input系统
  4. VisionMobile:移动平台生态系统冲突报告(八)Chapter C:Android(下)
  5. Android 使用Glide4.9 压缩并保存图片(jpg/png/gif)到本地
  6. Ubuntu编译Android系统源码问题记录
  7. Android中ListView使用- 网络图片的异步加载

随机推荐

  1. Android中的ViewDragHelper
  2. Fuchsia OS 要取代 Android?小论Google F
  3. 在Android中监控来电和去电
  4. 【Android(安卓)设计】:启航_ UI概览
  5. Android内核详解之Low memory killer
  6. 高焕堂:iPhone软件是芝麻,巧用Android才能
  7. 如何搭建Android的开发环境->安装虚拟机
  8. Android(安卓)studio怎么创建文件? Andro
  9. Android(安卓)Binder入门指南之Binder相
  10. 从零到壹逆袭Android开发工程师