因为最近刚刚进入新公司,还在熟悉业务中,所以带我的师傅让我关注关注Android的非SDK式的分享,也就是所谓的调用系统分享,不需要去申请appkey什么,简单方便,因此也跟我提了一个需求,就是直接调起具体的分享页,比如说如果分享到新浪微博,则不需要再点击微博进入,而是直接进入微博的具体分享页。为什么需要调用系统的分享,因为单纯的sdk分享并不支持多图模式的分享。
首先,我们得了解常用的分享平台,微信、微信朋友圈、新浪微博、QQ和QQ空间,这五个是最基本也是最常用的分享平台,我们也在这五个上面进行分享的操作。
另外,我们也给自己提一个需求,简单点就是在某个文件夹下面遍历里面的图片,然后将这些图片分享到各大平台。所以我们先找到一个存放图片的路径,MainActivity中的onCreate()方法中定义
找到路径之后,我们需要对这个目录进行遍历操作
新建一个ShareUtils的工具类,里面封装了分享的方法
废话少说,先看代码
微信分享
关注ComponentName这里面的两个参数,第一个参数是微信的包名,另一个是跳转到具体分享页的类路径。
接下来是QQ的分享
QQ Zone的分享
新浪微博的分享
这些代码都是大同小异,只要关注包名和类名就行,新浪微博比较特殊,之前也是设置类名和包名的,但是发现没有用,后来直接通过设置包名,发现成功了,估计新浪为了安全考虑,就隐藏了跳转具体类的用法
Tips:当你找不到这些具体类的时候,可以下一个淘宝联盟,然后通过Android studio抓取系统日志,下面附上具体跳转的类名和各应用的包名,另外网上很多东西都过时了,不如自己抓取看看来的放心,可以少走很多弯路。
新浪微博包名:com.sina.weibo
微信:com.tencent.mm 跳转类:com.tencent.mm.ui.tools.ShareImgUI
QQ:com.tencent.mobileqq ; 跳转类:com.tencent.mobileqq.activity.JumpActivity
QQ Zone :com.qzone ; 跳转类: com.qzonex.module.operation.ui.QZonePublishMoodActivity