实现分享功能的几个办法


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

效果如下:


分享到QQ

更多相关文章

  1. 【Android(安卓)应用开发】Android中使用ViewPager制作广告栏效
  2. Android补间动画
  3. MaterialDesign 布局/控件踩坑记
  4. Android三种常用动画分享(2)--补间动画
  5. android游戏引擎andengine学习系列六:Physics物理碰撞效果理解
  6. Android基于ViewPager实现类似微信页面切换效果
  7. android之微信分享图片
  8. android popupwindow 动画 特效 案例
  9. android textView常用功能

随机推荐

  1. 详细介绍XML特殊字符的问题
  2. 详解根据xsd生成xml文档的示例代码分析
  3. 自定义XML动态配置程序的示例代码分享
  4. Schema验证XML概念的实例代码详解
  5. 详细介绍XML与JSON相互转换(图文)
  6. 详解XML命名空间(XML Namespaces)介绍以及
  7. 详解读写XML文件的代码案例
  8. xml约束技术之dtd的详解
  9. 使用CSS样式表格式化XML文档的详情介绍
  10. xml,文件操作功能类的示例代码详解