Android实现QQ分享及注意事项
一、获取APPID和帮助文档
在前面我介绍了关于Android中微信分享的文章《 Android实现微信分享及注意事项》这一篇文章来看看关于QQ分享。
可以参看新手引导和接入说明:http://wiki.open.qq.com/wiki/移动应用接入wiki索引
二、实现代码(转载请说明出处:http://blog.csdn.net/dawanganban )
public class QQShareManager {
/**
* 链接
*/
public static final int QQ_SHARE_WAY_WEBPAGE = 3;
/**
* QQ
*/
public static final int QQ_SHARE_TYPE_TALK = 1;
/**
* QQ空间
*/
public static final int QQ_SHARE_TYPE_ZONE = 2;
/**
* 分享成功
*/
public static final int CALLBACK_CODE_SUCCESS = 0;
/**
* 取消分享
*/
public static final int CALLBACK_CODE_CANCEL = 1;
/**
* 拒绝访问
*/
public static final int CALLBACK_CODE_DENY = 2;
/**
* 未知
*/
public static final int CALLBACK_CODE_UNKNOWN = 3;
private static String appId;
private Tencent mTencent;
private QQShare qqShare;
private QzoneShare qzoneShare;
private QQShareResponse qqShareResponse;
public void registShare(Context context){
//初始化数据
if(appId == null){
appId = QQShareUtil.getQQAppId(context);
}
//初始化分享代码
if(appId != null && (qqShare == null || qzoneShare == null)){
mTencent = Tencent.createInstance(appId, context);
qqShare = new QQShare(context, mTencent.getQQToken());
qzoneShare = new QzoneShare(context, mTencent.getQQToken());
}
}
/**
* 分享qq和空间
* @param shareContent 分享内容
* @param shareType 选择类型(qq、空间)
*/
public void shareByQQ(Activity activity, ShareContent shareContent, int shareType){
shareWebPage(activity, shareType, shareContent);
}
private void shareWebPage(Activity activity, int shareType, ShareContent shareContent){
Bundle params = new Bundle();
if(shareType == QQ_SHARE_TYPE_ZONE){
shareWebPageQzone(activity, shareContent, params);
}else{
shareWebPageQQ(activity, shareContent, params);
}
}
private void shareWebPageQQ(Activity activity, ShareContent shareContent, Bundle params) {
params.putString(QQShare.SHARE_TO_QQ_TITLE, shareContent.getTitle());
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, shareContent.getContent());
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE,
QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, shareContent.getURL());
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, shareContent.getPicUrl());
doShareToQQ(activity, params, iUiListener);
}
private void shareWebPageQzone(Activity activity, ShareContent shareContent, Bundle params) {
params.putString(QzoneShare.SHARE_TO_QQ_TITLE, shareContent.getTitle());
params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, shareContent.getContent());
params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,
QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, shareContent.getURL());
ArrayList<String> imageUrls = new ArrayList<String>();
imageUrls.add(shareContent.getPicUrl());
params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, imageUrls);
//params.putString(QzoneShare.SHARE_TO_QQ_IMAGE_URL, shareContent.getPicUrl());
doShareToQzone(activity, params, iUiListener);
}
private void doShareToQQ(final Activity activity, final Bundle params, final IUiListener iUiListener) {
new Thread(new Runnable() {
@Override
public void run() {
if(qqShare != null){
qqShare.shareToQQ(activity, params, iUiListener);
}
}
}).start();
}
private void doShareToQzone(final Activity activity, final Bundle params, final IUiListener iUiListener) {
new Thread(new Runnable() {
@Override
public void run() {
if(qzoneShare != null){
qzoneShare.shareToQzone(activity, params, iUiListener);
}
}
}).start();
}
private final IUiListener iUiListener = new IUiListener() {
@Override
public void onCancel() {
sendRespCode(CALLBACK_CODE_CANCEL);
}
@Override
public void onComplete(Object response) {
sendRespCode(CALLBACK_CODE_SUCCESS);
}
@Override
public void onError(UiError e) {
sendRespCode(CALLBACK_CODE_DENY);
}
private void sendRespCode(int code) {
if(qqShareResponse != null){
qqShareResponse.respCode(code);
}
}
};
public interface QQShareResponse{
/**
* 分享结果
* @param code 结果码
*/
public void respCode(int code);
}
/**
* 注册结果回馈
* @param qqShareResponse
*/
public void setOnQQShareResponse(QQShareResponse qqShareResponse){
this.qqShareResponse = qqShareResponse;
}
/**
* 欢迎关注-阳光小强-http://blog.csdn.net/dawanganban
* @author lixiaoqiang
*
*/
private abstract class ShareContent{
protected abstract int getShareWay();
protected abstract String getContent();
protected abstract String getTitle();
protected abstract String getURL();
protected abstract String getPicUrl();
}
/**
* 设置分享链接的内容
* @author Administrator
*
*/
public class ShareContentWebpage extends ShareContent{
private String title;
private String content;
private String url;
private String picUrl;
public ShareContentWebpage(String title, String content,
String url, String picUrl){
this.title = title;
this.content = content;
this.url = url;
this.picUrl = picUrl;
}
@Override
protected String getContent() {
return content;
}
@Override
protected String getTitle() {
return title;
}
@Override
protected String getURL() {
return url;
}
@Override
protected int getShareWay() {
return QQ_SHARE_WAY_WEBPAGE;
}
@Override
protected String getPicUrl() {
return picUrl;
}
}
}
上面实现了文字分享、图片分享和链接分享接口,希望对正在学习Android的朋友和需要的朋友有所帮助。
另外部分细节问题和微信分享几乎一样,可以参考《 Android实现微信分享及注意事项》
Android实现QQ分享及注意事项的更多相关文章
- Android实现微信分享及注意事项
一.获取帮助文档并下载相关资料 首先打开微信开放平台:https://open.weixin.qq.com/ 如果没有注册,请先注册并上传开发者资料等待审核. 资源中心----移动应用开发----分享 ...
- Android 解决qq分享后返回程序出现的Bug
问题:当我们使用qq分享时,分享成功后选择留在qq,这个时候按home键,回到手机主界面,在点击回到我的app,这个时候会出现界面显示出来了,但是任何事件都不响应,即按钮没反应. 分析:这个时候回到我 ...
- Android实现微博分享及其注意事项
在前面我写了两篇关于QQ和微信的分享(http://blog.csdn.net/dawanganban/article/details/42015249)(http://blog.csdn.net/d ...
- Android之第三方平台实现QQ登录和QQ分享
目前大多数APP都包含了第三方平台的登录,特别是QQ和微信,这篇博客主要讲的是如何实现QQ第三方平台实现QQ登录和分享功能,功能包含: 登录授权登录获取用户信息(昵称,头像,地址等) QQ分享给好友 ...
- Android实现截图分享qq,微信
代码地址如下:http://www.demodashi.com/demo/13292.html 前言 现在很多应用都有截图分享的功能,今天就来讲讲截图分享吧 今天涉及到以下内容: android权限设 ...
- android 集成QQ互联 (登录,分享)
参考:http://blog.csdn.net/syz8742874/article/details/39271117 http://blog.csdn.net/woblog/article/deta ...
- Android 微信分享与QQ分享功能
微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自己看官方文档来实现就最好了~ 一.微信分享 微信分享功能需要先在微信开放平台注册应用并 ...
- Android 调用系统分享文字、图片、文件,可直达微信、朋友圈、QQ、QQ空间、微博
原文:Android 调用系统分享文字.图片.文件,可直达微信.朋友圈.QQ.QQ空间.微博 兼容SDK 18以上的系统,直接调用系统分享功能,分享文本.图片.文件到第三方APP,如:微信.QQ.微博 ...
- Android 实现微信QQ分享以及第三方登录
集成准备 在微信开放平台创建移动应用,输入应用的信息,包括移动应用名称,移动应用简介,移动应用图片信息,点击下一步,选择Android 应用,填写信息提交审核. 获取Appkey 集成[友盟+]SDK ...
随机推荐
- 织梦CMS调用文章第一张图片(非缩略图)终极方法
之前,网上流传了很多在织梦CMS中调用第一张图片的方法,但大体都一样.即删除缩略图字符串,并添加后缀.然而这种方法仅限于jpg图片或其他单独图片类的调用.如果一个站有png.JPG.gif等多种格式. ...
- 对OC中property的一点理解
最近在看即将要加入的项目的代码,看到一个protocol里包含着几个property.之前没有写过类似的代码,看到这里的时候,突然疑惑了一下,发现自己对property的理解好像有点模糊.所以回家后又 ...
- WinDBG help
WinDBG is a great, free tool. It is more powerful than Visual Studio's built-in debugger, but is har ...
- global_step
global_step=tf.Variable(0, trainable=False) 设定trainable=False 可以防止该变量被数据流图的 GraphKeys.TRAINABLE_VARI ...
- 关于thinkphp 命令行
很多人做多年开发只懂得PHP能在浏览器下运行或者只能结合APACHE等WEB服务器运行,却不晓得,PHP也能用命令行执行,或许是由于大多人在WINDOWS平台做开发部署运行,比较少接触LINUX. T ...
- uname---用于打印当前系统相关信息
uname命令用于打印当前系统相关信息(内核版本号.硬件架构.主机名称和操作系统类型等). 语法 uname(选项) 选项 -a或--all:显示全部的信息: -m或--machine:显示电脑类型: ...
- 紫书 习题 10-3 UVa 1643(计算几何 叉乘)
直观感觉对角线重合的时候面积最大 然后可以根据方程和割补算出阴影部分的面积 注意知道两点坐标,可以求出与原点形成的三角形的面积 用叉乘,叉乘的几何意义以这两个向量为边的平行四边形的面积 所以用叉乘除以 ...
- FastDFS学习总结(2)--Tracker与Storage配置详解
1.Tracker基本配置 # is this config file disabled # false for enabled # true for disabled disabled=false ...
- 华为:一张图看懂 HBase
来自为知笔记(Wiz)
- WIN10远程桌面连接--“出现身份验证错误。要求的函数不支持”
最近WIN10升级补丁后发现远程桌面无法连接了,报“出现身份验证错误.要求的函数不支持”的错误: 解决办法: 第一种,配置本地自己的电脑,开始菜单->搜索gpedit.msc并打开 打开配置 ...