1 首先到http://open.qq.com/ 腾讯开放平台注册应用
2 下载QQ分享的SDK的 jar包 并导入工程的libs文件夹
3 在build.gradle里加入引用的jar包,并同步 如
dependencies {
//QQ分享
compile files('libs/open_sdk_r6008_lite.jar')
}
4 在AndroidManifest.xml里添加
<!--QQ分享-->
<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="tencentxxxxx" /> <!-- 获取的APPID -->
</intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize" />
5 在要分享的类里添加如下方法
//QQ
//---------------------------------------------------
private void initQQShare(Context myContext){
//传入参数APPID
myTencent = Tencent.createInstance(QQShare_APPID, myContext.getApplicationContext());
//
mIUiListener = new ShareUiListener();
}
//分享到QQ
private void QQShare(){
final Bundle params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);//分享的类型
params.putString(QQShare.SHARE_TO_QQ_TITLE, "XXXXXXXX");//分享标题
params.putString(QQShare.SHARE_TO_QQ_SUMMARY,"XXXXXXXXXXX");//要分享的内容摘要
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,"http://blog.csdn.net");//内容地址
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,"http://avatar.csdn.net/B/3/F/1_sandyran.jpg");//分享的图片URL
params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "xxxxxx");//应用名称
myTencent.shareToQQ(GameDetailActivity.this, params, mIUiListener);
}
private void QQShareZone(){
int QzoneType = QzoneShare.SHARE_TO_QZONE_TYPE_NO_TYPE;
Bundle params = new Bundle();
params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE, QzoneType);
params.putString(QzoneShare.SHARE_TO_QQ_TITLE, "XXXXXXXXX");//分享标题
params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "XXXXXXXX");//分享的内容摘要
params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, "http://blog.csdn.net");//分享的链接
//分享的图片, 以ArrayList<String>的类型传入,以便支持多张图片(注:图片最多支持9张图片,多余的图片会被丢弃)
ArrayList<String> imageUrls = new ArrayList<String>();
imageUrls.add("http://avatar.csdn.net/B/3/F/1_sandyran.jpg");//添加一个图片地址
params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, imageUrls);//分享的图片URL
myTencent.shareToQzone(GameDetailActivity.this, params, mIUiListener);
}
/**
* 自定义监听器实现IUiListener,需要3个方法
* onComplete完成 onError错误 onCancel取消
*/
private class ShareUiListener implements IUiListener {
@Override
public void onComplete(Object response) {
//分享成功
}
@Override
public void onError(UiError uiError) {
//分享失败
}
@Override
public void onCancel() {
//分享取消
}
}
/**
* 回调
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//QQ
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){
if(resultCode == Constants.ACTIVITY_OK){
}
Tencent.handleResultData(data, mIUiListener);
}
}
}
6 在类初始化的地方调用
initQQShare(this);
7 在分享点击监听里调用
QQShare();//分享好友
QQShareZone();//分享空间