欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android调用系统自带的分享功能实例代码

程序员文章站 2022-10-11 23:18:01
实现分享功能的几个办法 1.调用系统的分享功能 2.通过第三方sdk,如sharesdk,友盟等 3.自行使用各自平台的sdk,比如qq,微信,微博各自的sd...

实现分享功能的几个办法

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<uri> 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);

效果如下:

Android调用系统自带的分享功能实例代码

指定分享到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调用系统自带的分享功能实例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。