关于qq第三方登录一些问题!无法获取信息等等

今天用到qq第三方登录 , 遇到一些问题

记录下来,防止忘记

SDK下载地址或者自己选择所需要的

然后导入到自己的项目

只记录一些关键代码:

qqLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mTencent.logout(context);
                if (!mTencent.isSessionValid()) {
                    mTencent.login(LoginActivity.this, "all", loginListener);
                }
            }
        });
    /**
     * qq Login
     */
    IUiListener loginListener = new IUiListener() {
        @Override
        public void onComplete(Object o) {
            Log.i(TAG, "iUiListener:" + o.toString());
            String json = o.toString();
            try {
                JSONObject rst = new JSONObject(json);
                String token = rst.getString(Constants.PARAM_ACCESS_TOKEN);
                String expires = rst.getString(Constants.PARAM_EXPIRES_IN);
                IMservice.openId = rst.getString(Constants.PARAM_OPEN_ID);
                //**下面这两步设置很重要,如果没有设置,返回为空**
                mTencent.setOpenId(IMservice.openId);
                mTencent.setAccessToken(token, expires);
                getuserInfo();
            } catch (JSONException e) {
                e.printStackTrace();
            }


        }

        @Override
        public void onError(UiError uiError) {
            Log.i(TAG, "iUiListener:" + uiError.toString());
		//这里就只是个Toast,我整合了
            ToastUtils.ToastShow(context, "登录失败,请稍后再试");
        }

        @Override
        public void onCancel() {
            Log.i(TAG, "取消登录");
            mTencent.logout(context);
            ToastUtils.ToastShow(context, "登录取消");
        }
    };

    private void getuserInfo() {
        ThreadUtils.runInThread(new Runnable() {
            @Override
            public void run() {
                qqInfo = new UserInfo(LoginActivity.this, mTencent.getQQToken());
                qqInfo.getUserInfo(getQQinfoListener);
            }
        });
    }

    IUiListener getQQinfoListener = new IUiListener() {
        @Override
        public void onComplete(Object o) {
            ToastUtils.ToastShow(context,"getQQinfoListener:"+ o.toString());
            Log.i(TAG, "getQQinfoListener:" + o.toString());
        }

        @Override
        public void onError(UiError uiError) {
            ToastUtils.ToastShow(context, "登录失败,请稍后再试");
        }

        @Override
        public void onCancel() {
            mTencent.logout(context);
            ToastUtils.ToastShow(context, "登录取消");
        }
    };

    /**
     * qq Login  End
     */


 
 
 
 


配置文件记得加上:

<!--  qq  -->
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true">
            <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="tencent000000" />
		<!--000000改成你的APPID-->
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <!--  qq  -->
添加权限

 
 

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

到这里,我运行一直得不到qq信息....找了好久,才知道  ..

//应用调用Andriod_SDK接口时,如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法中增加如下代码:
        //其中onActivityResultData接口中的listener为当前调用的Activity所实现的相应回调UIListener。
        Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);


END .....   可能有些没说清楚,代码有点乱...如果有问题,麻烦提出了  谢谢  

发布了13 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u013241923/article/details/53159811