/** 绑定微博 */ @Click(R.id.weiboRowRl) void onBindWeiboAccount() { if (weiboOpenId != null) { unBindDialog.show(); unbindType = BUND_TYPE_WEIBO; } else { processDialog.show(); authHelper.requestSinaWeiboAuth(); } }
/** 绑定qq */ @Click(R.id.qqRowRl) void onBindQQAccount() { if (qqOpenId != null) { unBindDialog.show(); unbindType = BUND_TYPE_QQ; } else { processDialog.show(); authHelper.requestTencentQQAuth(); } }
/** 绑定微信 */ @Click(R.id.wechatRowRl) void onBindWechatAccount() { if (wechatOpenId != null) { unBindDialog.show(); unbindType = BUND_TYPE_WECHAT; } else { processDialog.show(); authHelper.requestWechatAuth(this); } }
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (processDialog != null && processDialog.isShowing()) { processDialog.dismiss(); } // 拍照回调 if (requestCode == Constants.REQUEST_CODE_TAKE_PHOTO || requestCode == Constants.REQUEST_CODE_GALLERY) { if (resultCode == RESULT_OK) { Uri photoUri = null; if (data == null) { photoUri = Uri.fromFile(getTempFile(this, null)); } else { photoUri = data.getData(); } Log.i(TAG, "crop photo data :" + photoUri); cropPhoto(photoUri); } } else if (requestCode == Constants.ACTION_IMAGE_CROP) { if (resultCode == RESULT_OK) { // 拿到剪切数据 modifiedUserPhoto = data.getParcelableExtra("data"); // 图像保存到文件中 FileOutputStream foutput = null; try { File temp = getTempFile(this, "crop_temp.jpg"); foutput = new FileOutputStream(temp); modifiedUserPhoto.compress(Bitmap.CompressFormat.JPEG, 100, foutput); // processDialog.show("请稍后..."); modifyUserPhoto(temp.getPath()); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (null != foutput) { try { foutput.close(); } catch (IOException e) { e.printStackTrace(); } } } } } else { // 第三方验证回调 authHelper.setActivityResult(requestCode, resultCode, data); } }
/** 获取第三方的头像 */ private void getUserPhotoInThird(String login_type, final String bindValue) { if (authHelper.isSessionValid(login_type)) { processDialog.show(); if (Constants.LOGIN_TYPE_QQ.equals(login_type)) { authHelper.getUserInfoInQQ( new IUiListener() { @Override public void onError(UiError arg0) { if (processDialog != null && processDialog.isShowing()) { processDialog.dismiss(); } } @Override public void onComplete(Object response) { JSONObject json = (JSONObject) response; Log.i(TAG, response + ""); if (json.has("figureurl_qq_2")) { try { // 获取第三方账户头像 String url = json.getString("figureurl_qq_2"); // 同时用获取的头像,创建账号 Log.i(TAG, url); bindThirdPhoto(BUND_TYPE_QQ, bindValue, url); } catch (JSONException e) { e.printStackTrace(); } } } @Override public void onCancel() { if (processDialog != null && processDialog.isShowing()) { processDialog.dismiss(); } } }); } if (BUND_TYPE_WECHAT.equals(login_type)) { // 同时用获取的头像,创建账号 bindThirdPhoto( BUND_TYPE_WECHAT, bindValue, SharedPreferencesUtil.getValue(this, Constants.HEAD_IMG_URL, "")); } if (Constants.LOGIN_TYPE_WEIBO.equals(login_type)) { authHelper.getUserInfoInWeibo( new com.sina.weibo.sdk.net.RequestListener() { @Override public void onWeiboException(WeiboException exc) { Log.e(TAG, exc.getMessage()); if (processDialog != null && processDialog.isShowing()) { processDialog.dismiss(); } } @Override public void onComplete(String response) { if (!TextUtils.isEmpty(response)) { User user = User.parse(response); Log.i(TAG, "微博头像 :" + user.profile_image_url); bindThirdPhoto("weiBo", bindValue, user.profile_image_url); // 同时用获取的头像,创建账号 } } }); } } }