Android第三方绑定QQ无法拉取授权页面

在Android开发中,经常需要绑定QQ,正确的作法去QQ互联上查看实现步骤就可以了,我这里主要说的是,比如第一次用QQ登录,然后退出登录,第二次继续点击QQ登录,但是中间无法出现授权状态的拉取界面,直接显示绑定成功或者绑定失败!

原因分析:

mTencent = Tencent.createInstance(Constants.tencentAPPID, this.getApplicationContext());

初次实例化mTencent对象后,直接使用,在退出登录时,没有按照官方文档对mTencent进行注销,所以第二次QQ登录时,mTencent对象还存在,就会直接登录成功!

解决方法:

在退出登录时,需要将mTencent实例对象注销,按照官方文档调用mTencent.logout(mContext);方法即可,下次使用QQ登录时,仍然可以拉取QQ登录界面进行号码更换或者授权。

相关代码如下:private void otherBind(final JSONObject json, final int type) {

pDialog.show();

new Thread() {

public void run() {

try {

String result = Commons.getHttpResult(Commons

.getCommonJson(json, BandAccountActivity.this,

"BindingThirdUser"));

Log.d(Constants.TAG, "===BandAccountActivity===第三方绑定结果===:"+result);

JSONObject resultData = new JSONObject(result);

String errcode = resultData.getString("errcode");

if ("0".equals(errcode)) {

if (type == Constants.WEIBOLOGIN) {

weiboState = true;

} else if (type == Constants.QQLOGIN) {

qqState = true;

}

handler.obtainMessage(2, type).sendToTarget();

} else if("1004".equals(errcode)){

if(type==1){

QQInfo.logout(mTencent, BandAccountActivity.this);

}

handler.obtainMessage(6, type).sendToTarget();

}else {

if(type==1){

QQInfo.logout(mTencent, BandAccountActivity.this);

}

handler.obtainMessage(3, type).sendToTarget();

}

} catch (Exception e) {

if(type==1){

QQInfo.logout(mTencent, BandAccountActivity.this);

}

handler.obtainMessage(3, type).sendToTarget();

}

}

}.start();

}

你可能感兴趣的:(Android第三方接入)