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

 更新时间:2017年04月25日 09:20:16   作者:姜康  
本篇文章主要介绍了Android调用系统自带的分享功能实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

实现分享功能的几个办法

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, "分享"));

效果如下图:

分享单张图片

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

效果如下:

指定分享到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路由框架ARouter分析

    Android路由框架ARouter分析

    这篇文章主要介绍了Android路由框架ARouter分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Android中手机震动的设置(Vibrator)的步骤简要说明

    Android中手机震动的设置(Vibrator)的步骤简要说明

    Android中手机震动的设置(Vibrator)的步骤,很详细,感兴趣的朋友可以了解下哦
    2013-01-01
  • Flutter音乐播放插件audioplayers使用步骤详解

    Flutter音乐播放插件audioplayers使用步骤详解

    audioplayers是一个可以支持同时播放多个音频文件的Flutter的插件,可以播放多个同时的音频文件,这篇文章主要介绍了audioplayers的使用步骤,感兴趣想要详细了解可以参考下文
    2023-05-05
  • Kotlin中实现多线程数据刷新的完整方案

    Kotlin中实现多线程数据刷新的完整方案

    这篇文章主要介绍了Kotlin中实现多线程数据刷新的完整方案,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-04-04
  • Android最新状态栏处理介绍

    Android最新状态栏处理介绍

    大家好,本篇文章主要讲的是Android最新状态栏处理介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android中Notification用法实例总结

    Android中Notification用法实例总结

    这篇文章主要介绍了Android中Notification用法,以实例形式较为详细的分析并总结了Notification的功能与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Android中ContextMenu用法实例

    Android中ContextMenu用法实例

    这篇文章主要介绍了Android中ContextMenu用法,实例分析了Android上下文菜单ContextMenu的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 解决Android studio3.6安装后gradle Download失败(构建不成功)

    解决Android studio3.6安装后gradle Download失败(构建不成功)

    这篇文章主要介绍了解决Android studio3.6安装后gradle Download失败(构建不成功),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Android程序结构简单讲解

    Android程序结构简单讲解

    在本篇文章里小编给大家分享一篇关于Android程序结构的简单说明内容,有需要的朋友们跟着学习下。
    2019-02-02
  • Android VideoView类实例讲解

    Android VideoView类实例讲解

    本文主要介绍Android VideoView类,这里对VideoView类详细说明了使用方法,以及示例代码,有兴趣的朋友可以参考下,希望能帮助Android 开发的朋友
    2016-08-08

最新评论