杭州Android培训
达内杭州Android培训中心

13732203138

热门课程

Android分享功能

  • 时间:2018-03-27 17:47
  • 发布:杭州android中心
  • 来源:疑难解答

实现分享功能的几个办法


1.调用系统的分享功能
2.通过第三方SDK,如ShareSDK,友盟等
3.自行使用各自平台的SDK,比如QQ,微信,微博各自的SDK

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

分享文本信息

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

分享文本信息

分享单张图片

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

分享多个文件

               ArrayList<Uri> imageUris =newArrayList<>();                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 =newIntent(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(@DrawableResintid) {        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();        returnuriPath;    }

指定分享到微信

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

分享到微信

指定分享到QQ

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

上一篇:怎样解决Android应用方法数过多
下一篇:Android Handler错误的使用
选择城市和中心
贵州省

广西省

海南省