第三方应用接入QQ分享

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里添加

       
        <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" /> 
            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的类型传入,以便支持多张图片(注:图片最多支持9张图片,多余的图片会被丢弃)
        ArrayList imageUrls = new ArrayList();
        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();//分享空间

你可能感兴趣的:(android)