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

 

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

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

1.调用系统分享

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

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  1. Intent share = new Intent(android.content.Intent.ACTION_SEND);  
  2.         PackageManager packageManager = getPackageManager();  
  3.         List<ResolveInfo> 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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  1. Intent send = new Intent();  
  2.             <strong>send.setAction(Intent.ACTION_SEND)</strong>;  
  3.             send.putExtra(Intent.<strong>EXTRA_STREAM</strong>, 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
  在CODE上查看代码片 派生到我的代码片
  1. ArrayList<Uri> uriList = new ArrayList<Uri>();  
  2.             uriList.add(img);  
  3.             uriList.add(img);  
  4.               
  5.             Intent send = new Intent();  
  6.             <span style="color:#ff6666;"><strong>send.setAction(Intent.ACTION_SEND_MULTIPLE);</strong></span>  
  7.             send.putExtra(Intent.EXTRA_STREAM, <strong>uriList</strong>);  
  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
  在CODE上查看代码片 派生到我的代码片
  1. send.putExtra("<span style="color:#ff0000;"><strong>Kdescription</strong></span>", shareContent+shareUrl);   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值