实现分享功能的几个办法
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);
效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
LongClick原理、上下文菜单原理、EditText长按弹窗原理、WebView长按弹窗自定义、修复WebView全选重复bug ———————————————— 版权声明:本文为CSDN博主「
JobScheduler 实现 特定时间,特定条件(系统空闲,电池电量,磁盘空间 ……)下执行任务
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 10 Service
网友评论