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

时间:2021-05-20

实现分享功能的几个办法

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

效果如下:

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章