android 集成QQ互联的问题

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();
  }
}
通过以上 方式获取到了用户的信息。希望能帮到你们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值