Android开发之QQ分享
来源:互联网 发布:android系统源码架构 编辑:程序博客网 时间:2024/05/02 00:07
在APP应用中,有时候需要分享文字图片或者URL链接到QQ好友或者QQ空间,下面简要介绍流程。
1.到腾讯开放平台注册开发者账号并登录,提交自己的APP信息并通过审核,获取APP对应的APP ID
2.下载相应的sdkSDK下载,并将sdk包手动添加到项目的lib包中。
3.配置manifest文件和application文件标签
manifest文件:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
application标签文件注册:
<activity android:name="com.tencent.tauth.AuthActivity" android:noHistory="true" android:launchMode="singleTask" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencent你的AppId" /> </intent-filter></activity><activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
4.撸代码:
1)新建Tencent实例
mTencent = Tencent.createInstance("your APP ID",getApplicationContext());
2)分享回调接口的自定义实现(实现接口或者重写接口方法)
IUiListener qqShareListener = new IUiListener() { @Override public void onComplete(Object o) { showMsg("您已分享到QQ"); } @Override public void onError(UiError uiError) { showMsg("分享到QQ失败"); } @Override public void onCancel() { showMsg("已取消分享"); } };
3)重写Activity或者Fragment的onActivityResult方法,否则不能正常监听到分享状态。
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); Tencent.onActivityResultData(requestCode, resultCode, data, mIUiListener); if (requestCode == Constants.REQUEST_API) { if (resultCode == Constants.REQUEST_QQ_SHARE || resultCode == Constants.REQUEST_QZONE_SHARE || resultCode == Constants.REQUEST_OLD_SHARE) { Tencent.handleResultData(data, mIUiListener); } }}
4)分享消息到QQ好友或者QQ空间
a、分享到QQ好友
private Bundle params;private void shareToQQ() { params = new Bundle(); params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE,QQShare.SHARE_TO_QQ_TYPE_DEFAULT); params.putString(QQShare.SHARE_TO_QQ_TITLE, "标题");// 标题 params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");// 摘要 params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,"http://www.qq.com/news/1.html");// 内容地址 params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,"http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");// 网络图片地址 params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "应用名称");// 应用名称 params.putString(QQShare.SHARE_TO_QQ_EXT_INT, "其它附加功能"); // 分享操作要在主线程中完成 ThreadManager.getMainHandler().post(new Runnable() { @Override public void run() { mTencent.shareToQQ(mActivity, params, mIUiListener); } });}
b、分享到QQ空间
private Bundle params;private void shareToQZone() { params = new Bundle(); params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT); params.putString(QzoneShare.SHARE_TO_QQ_TITLE, "标题");// 标题 params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");// 摘要 params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL,"http://www.qq.com/news/1.html");// 内容地址 ArrayList<String> imgUrlList = new ArrayList<>(); imgUrlList.add("http://f.hiphotos.baidu.com/image/h%3D200/sign=6f05c5f929738bd4db21b531918a876c/6a600c338744ebf8affdde1bdef9d72a6059a702.jpg"); params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL,imgUrlList);// 图片地址 // 分享操作要在主线程中完成 ThreadManager.getMainHandler().post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub mTencent.shareToQzone(mActivity, params,mIUiListener); } });}
c、另一种简单的实现方式
private void shareToQQ(Boolean isShareToZone) { Bundle bundle = new Bundle(); bundle.putString(QQShare.SHARE_TO_QQ_TARGET_URL, this.getResources().getString(R.string.share_url)); bundle.putString(QQShare.SHARE_TO_QQ_TITLE, this.getResources().getString(R.string.share_title)); bundle.putString(QQShare.SHARE_TO_QQ_SUMMARY, this.getResources().getString(R.string.share_description)); bundle.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, Constant.APP_LOGO); bundle.putString(QQShare.SHARE_TO_QQ_APP_NAME, "十二码"); bundle.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT); if (isShareToZone) { bundle.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN); } Tencent.createInstance(Constant.QQ_APP_ID, this).shareToQQ(this, bundle, qqShareListener); }
参考文章:
Android QQ分享、QQ空间分享——简书
腾讯官方文档
相关文章:
Android开发之微信分享接口方法
于2017.7.19
阅读全文
0 0
- Android开发之QQ分享
- Android 之 QQ分享
- QQ分享之andriod开发
- android开发之&集成qq分享的那些坑
- iOS开发之第三方分享QQ分享实现
- Android开发之使用SharedPreferences实现QQ登陆的选项框记忆功能(源代码分享)
- 【Android】开发干货-技术分享之高仿QQ换肤SkinEngine实现
- 【Android】开发干货-技术分享之高仿QQ微信网页加载进度条实现
- Android开发 QQ sso登录和分享到QQ好友功能,调用本地QQ客户端
- Android开发 QQ sso登录和分享到QQ好友功能,调用本地QQ客户端
- Android:QQ空间分享
- android QQ好友分享
- android QQ分享
- android 友盟QQ分享
- Android分享功能,微博、QQ、QQ空间等社交平台分享之入门与进阶
- android 开发 qq,微信,微博分享一步搞定
- iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现
- iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现
- Java异常之throws与throw关键字的用法
- 各大互联网大赛汇总
- Java工具类_模拟HTTP POST请求
- ubuntu16.04下KDevelop安装与使用
- Oracle_SQL 之条件表达式
- Android开发之QQ分享
- dtd设计
- 【撸码caffe 二】 blob.hpp
- 那一年, 我第一次在工作中用到了三次握手的分析
- 【一步一步】Spring 源码环境搭建
- java工程师基础知识面试
- * 24种设计模式——责任链模式
- 设置meta标签 清除页面缓存,如:<meta http-equiv="Cache-Control" content="no-cache"/>
- Gym