100044问题:需要打正式包 测试。
还有qq登录成功不执行回调:
需要改成下面的方式
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { mTencent.onActivityResultData(requestCode, resultCode, data, baseUiListener); }
还有一个很奇葩的问题
public
void
getUserInfo
(
)
{
mTencent
.
requestAsync
(
Constants
.
GRAPH_SIMPLE_USER_INFO
,
null
,
Constants
.
HTTP_GET
,
new
BaseApiListener
(
"get_simple_userinfo"
,
false
)
,
null
)
;
}
Constants.GRAPH_SIMPLE_USER_INFO 这个该死的参数根本就找不到。
然后通过百度前辈们的经验:
public void getUserInfo() { UserInfo userInfo = new UserInfo(LoginActivity.this, mTencent.getQQToken()); userInfo.getUserInfo(new BaseUiListener(LoginActivity.this)); LLogUtils.i("userInfo:"+userInfo.toString()); }
重写回调
private class BaseUiListener implements IUiListener { private Context mContext; public BaseUiListener(Context mContext) { super(); this.mContext = mContext; } @Override public void onComplete(Object o) { LLogUtils.i("values:"+o.toString()); try { perJson(o.toString()); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(UiError uiError) { ToastUtil.show("uiError:"+uiError.toString()); } @Override public void onCancel() { ToastUtil.show("onCancel"); } } private void perJson(String o) throws JSONException { JSONObject jsonObject=new JSONObject(o); if (jsonObject.optInt("ret")==0){ String openID = jsonObject.optString("openid"); String accessToken = jsonObject.optString("access_token"); int expires = jsonObject.optInt("expires_in"); mTencent.setOpenId(openID); mTencent.setAccessToken(accessToken,expires+""); getUserInfo(); } }通过以上 方式获取到了用户的信息。希望能帮到你们。