Android调用系统分享功能总结
2018-01-25 15:18
495 查看
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);
效果如下:
分享到QQ
博客原文:>>>> https://www.jianshu.com/p/0a0e2258b3d6
非常感谢原文作者的分享。如有侵犯,请联系作者QQ337081267删除
个人博客:http://wintp.top
补充
同时分享图片和文字
private void share(String content, Uri uri){ Intent shareIntent = new Intent(Intent.ACTION_SEND); if(uri!=null){ shareIntent.putExtra(Intent.EXTRA_STREAM, uri); shareIntent.setType("image/*"); //当用户选择短信时使用sms_body取得文字 shareIntent.putExtra("sms_body", content); }else{ shareIntent.setType("text/plain"); } shareIntent.putExtra(Intent.EXTRA_TEXT, content); //自定义选择框的标题 startActivity(Intent.createChooser(shareIntent, "邀请好友")); //系统默认标题 }
之所以这种方法可以传递图片,是因为shareIntent.setType(“image/* “),而 setType(“image/* “)可以传递文字也可以传递图片;其中图片内容可以由Uri指定,注意需要将图片的url转换成uri
参考文章:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1103/1893.html
相关文章推荐
- Android实现调用系统分享功能示例的总结
- Android调用系统分享功能以及createChooser的使用
- android 调用系统中分享功能
- Android:调用系统分享功能
- Android:调用系统分享功能
- 探索Android调用系统的分享功能
- android调用系统的分享功能实现分享到短信,邮件和其他
- Android 调用系统分享功能
- Android调用系统分享功能以及createChooser的使用
- Android调用系统分享功能以及createChooser的使用
- Android调用系统自带的分享功能实例代码
- Android:调用系统分享功能
- Android调用系统分享功能以及createChooser的使用
- 调用Android系统分享功能(可分享纯文本信息)
- Android调用系统本身的分享功能
- Android调用系统分享功能以及createChooser的使用
- 探索Android调用系统的分享功能
- Android 调用系统的分享功能
- android 调用系统分享功能以及实现自定义分享
- Android分享---调用系统自带的分享功能