// 当你看到这个问题的时候 我假设你已经遇到了Android上QQ登录不回调的问题 且 代码和官方文档一致
(这时候其实仔细看sdk里的示例代码才能发现官方文档和sdk示例代码有出入的)
上代码:
private void onQQLoginClick() {
// 这里的逻辑和官方文档一样
tencent = Tencent.createInstance(Config.QQ_APP_ID, this);
if (!tencent.isSessionValid()) {
tencentLoginListener = new IUiListener() {
@Override
public void onComplete(Object o) {
org.json.JSONObject obj = (org.json.JSONObject) o;
Log.i(TAG, "#onComplete " + obj);
}
@Override
public void onError(UiError uiError) {
Log.i(TAG, "#onError " + uiError.errorMessage);
}
@Override
public void onCancel() {
Log.i(TAG, "#onCancel 取消");
}
};
tencent.login(this, "all", tencentLoginListener);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// 官方文档没没没没没没没没没没没这句代码, 但是很很很很很很重要, 不然不会回调!
Tencent.onActivityResultData(requestCode, resultCode, data, tencentLoginListener);
if(requestCode == Constants.REQUEST_API) {
if(resultCode == Constants.RESULT_LOGIN) {
Tencent.handleResultData(data, tencentLoginListener);
}
}
}
看代码注释吧. sdk源码有调用Tencent.onActivityResultData()
坑爹! 卧槽
#SEO 加几个关键字 方便检索
Android QQ登录不回调 Android_SDK_V2.9.3 open_sdk_r5276_lite.jar
openSDK_LOG.UIListenerManager getListner action is null! rquestCod=11101