1.调用系统分享
根据每个手机的情况不同,打开的分享面板内容也是不一样的。其实本质上,分享的目标app是插件化开发,这样调用分享的时候,才能打开对应的Activity,而不需要打开一个完整的app进程。
-
-
-
- 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);
- }
调用系统的分享功能可以不用申请API集成,比较方便,但是不好的地方就是没有回调可以知道是否分享了,分享是否成功了。
2.指定app分享
首先要知道app的包名和Activity的名称。通过以下方法获得手机上全部可用于分享的app的包名和Activity名称。
- Intent share = new Intent(android.content.Intent.ACTION_SEND);
- PackageManager packageManager = getPackageManager();
- List<ResolveInfo> list=packageManager.queryIntentActivities(share, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
- for(ResolveInfo info:list){
- MyUtils.log(""+info.activityInfo.packageName+"---"+info.activityInfo.name);
- }
得到包名和activity名称后,指定目标app分享。以QQ和微信举例。
- 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.mobileqq", "com.tencent.mobileqq.activity.JumpActivity");
-
- startActivityForResult(sendIntent, QUN_QUEST);
3.Android系统分享-微信朋友圈分享
- Bitmap decodeRecource = BitmapFactory.decodeResource(getResources(), R.drawable.app_icon);
- File file = writeFileByBitmap2(decodeRecource);
- Uri img = Uri.fromFile(file);
分享单张图片到朋友圈
- Intent send = new Intent();
- <strong>send.setAction(Intent.ACTION_SEND)</strong>;
- send.putExtra(Intent.<strong>EXTRA_STREAM</strong>, img);
- send.setType("image/*");
- send.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");
- startActivityForResult(send, WX_QUEST);
分享多张图片到朋友圈
- ArrayList<Uri> uriList = new ArrayList<Uri>();
- uriList.add(img);
- uriList.add(img);
-
- Intent send = new Intent();
- <span style="color:#ff6666;"><strong>send.setAction(Intent.ACTION_SEND_MULTIPLE);</strong></span>
- send.putExtra(Intent.EXTRA_STREAM, <strong>uriList</strong>);
- send.setType("image/*");
- send.setClassName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");
- startActivityForResult(send, WX_QUEST);
微信分享图片+文字
用上面的方法添加图片分享,如果要添加文字,再添加一句代码就可以
- send.putExtra("<span style="color:#ff0000;"><strong>Kdescription</strong></span>", shareContent+shareUrl);