如何在Android应用中调用系统自带的分享功能

本篇文章给大家分享的是有关如何在Android应用中调用系统自带的分享功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联是一家专业提供长宁企业网站建设,专注与成都网站制作、网站建设、外贸网站建设H5场景定制、小程序制作等业务。10年已为长宁众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

实现分享功能的几个办法

1.调用系统的分享功能

2.通过第三方SDK,如ShareSDK,友盟等

3.自行使用各自平台的SDK,比如QQ,微信,微博各自的SDK

这里就记录下第一种办法。

分享文本信息

    Intent textIntent = new Intent(Intent.ACTION_SEND);
    textIntent.setType("text/plain");
    textIntent.putExtra(Intent.EXTRA_TEXT, "这是一段分享的文字");
    startActivity(Intent.createChooser(textIntent, "分享"));

效果如下图:

如何在Android应用中调用系统自带的分享功能

分享单张图片

    String path = getResourcesUri(R.drawable.shu_1);
    Intent imageIntent = new Intent(Intent.ACTION_SEND);
    imageIntent.setType("image/jpeg");
    imageIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path));
    startActivity(Intent.createChooser(imageIntent, "分享"));

分享多个文件

    ArrayList imageUris = new ArrayList<>();
    Uri uri1 = Uri.parse(getResourcesUri(R.drawable.dog));
    Uri uri2 = Uri.parse(getResourcesUri(R.drawable.shu_1));
    imageUris.add(uri1);
    imageUris.add(uri2);
    Intent mulIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
    mulIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
    mulIntent.setType("image/jpeg");
    startActivity(Intent.createChooser(mulIntent,"多文件分享"));

上面几个例子的效果都是一样的,创建一个选择器,让用户自己选择分享到哪里。

这里有一点得注意,就是通过这种方法进行分享,Intent传递的数据的Type(就是setType()方法)一定要控制好,不然会出错。(至于为什么后面说)。

其中由于是分享的res中的图片,故转变为uri,方法在这:

 private String getResourcesUri(@DrawableRes int id) {
  Resources resources = getResources();
  String uriPath = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
    resources.getResourcePackageName(id) + "/" +
    resources.getResourceTypeName(id) + "/" +
    resources.getResourceEntryName(id);
  Toast.makeText(this, "Uri:" + uriPath, Toast.LENGTH_SHORT).show();
  return uriPath;
 }

指定分享到微信

    Intent wechatIntent = new Intent(Intent.ACTION_SEND);
    wechatIntent.setPackage("com.tencent.mm");
    wechatIntent.setType("text/plain");
    wechatIntent.putExtra(Intent.EXTRA_TEXT, "分享到微信的内容");
    startActivity(wechatIntent);

指定分享到QQ

    Intent qqIntent = new Intent(Intent.ACTION_SEND);
    qqIntent.setPackage("com.tencent.mobileqq");
    qqIntent.setType("text/plain");
    qqIntent.putExtra(Intent.EXTRA_TEXT, "分享到微信的内容");
    startActivity(qqIntent);

以上就是如何在Android应用中调用系统自带的分享功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


标题名称:如何在Android应用中调用系统自带的分享功能
本文地址:http://azwzsj.com/article/pddjei.html