在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方法,否则不能正常监听到分享状态。
@Override
protected 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
本文介绍了在Android应用中实现QQ分享的详细步骤,包括在腾讯开放平台注册APP、添加SDK、配置manifest文件和application标签,以及实现分享回调接口和分享到QQ好友或QQ空间的代码示例。

3613

被折叠的 条评论
为什么被折叠?



