getString(R.string.oauth_cancle));
}
});
}
**
获取平台信息**
/**
-
获取用户信息
-
@param platform
*/
private void getUserInfo(final SHARE_MEDIA platform) {
mController.getPlatformInfo(SettingActivity.this, platform,
new UMDataListener() {
@Override
public void onStart() {
// 开始获取
showProgressDialog();
}
@Override
public void onComplete(int status, Map<String, Object> info) {
LogUtils.logi(“third login”, info.toString());
String sns_id = “”;
String sns_avatar = “”;
String sns_loginname = “”;
if (info != null) {
String sns = “”;
if (platform == SHARE_MEDIA.SINA) { // 新浪微博
sns = “sina”;
sns_id = info.get(“uid”).toString();
sns_avatar = info.get(“profile_image_url”)
.toString();
sns_loginname = info.get(“screen_name”)
.toString();
} else if (platform == SHARE_MEDIA.QQ) { // QQ
sns = “qq”;
sns_id = info.get(“uid”).toString();
sns_avatar = info.get(“profile_image_url”)
.toString();
sns_loginname = info.get(“screen_name”)
.toString();
} else if (platform == SHARE_MEDIA.WEIXIN) { // 微信
sns = “wechat”;
sns_id = info.get(“openid”).toString();
sns_avatar = info.get(“headimgurl”).toString();
sns_loginname = info.get(“nickname”).toString();
} else if (platform == SHARE_MEDIA.DOUBAN) { // 豆瓣
sns = “douban”;
sns_id = info.get(“uid”).toString();
sns_avatar = info.get(“profile_image_url”)
.toString();
sns_loginname = info.get(“screen_name”)
.toString();
}
LogUtils.loge(“weixin”, sns + “,” + sns_id + “,”
- sns_loginname);
HttpRequestHelper.getInstance().getUserBySns(
SettingActivity.this,
sns,
sns_id,
sns_avatar,
sns_loginname,
new GetUserBySnsResponse(platform, sns,
sns_id, sns_avatar, sns_loginname));
}
}
});
}
解除绑定方法
/**
-
注销本次登陆
-
@param platform
*/
private void logout(final SHARE_MEDIA platform) {
mController.deleteOauth(SettingActivity.this, platform,
new SocializeClientListener() {
@Override
public void onStart() {
}
@Override
public void onComplete(int status, SocializeEntity entity) {
String showText = “解除” + platform.toString() + “平台授权成功”;
if (status != StatusCode.ST_CODE_SUCCESSED) {
showText = “解除” + platform.toString() + “平台授权失败[”
- status + “]”;
} else {
if (platform == SHARE_MEDIA.SINA) {
sinaBindingText
.setText(getString(R.string.setting_unbind));
StorageUtils.setShareValue(
SettingActivity.this,
StorageUtils.KEY_SINA_BINDING, false);
} else if (platform == SHARE_MEDIA.QQ) {
qqBindingText
.setText(getString(R.string.setting_unbind));
StorageUtils.setShareValue(
SettingActivity.this,
StorageUtils.KEY_QQ_BINDING, false);
}
}
Toast.makeText(SettingActivity.this, showText,
Toast.LENGTH_SHORT).show();
}
});
}
取消对话框
/**
- 显示取消绑定对话框
*/
private void showCancleBindingDialog(final SHARE_MEDIA platform) {
final ExitDialog exitDialog = new ExitDialog(SettingActivity.this);
exitDialog.setExitText(getString(R.string.tip_cancle_binding));
exitDialog.setItemClickListener(new ExitDialog.ItemClickListener() {
@Override
public void onItemClick(View view, int index) {
exitDialog.dismiss();
if (index == 0) {
logout(platform);
}
}
});
if (!exitDialog.isShowing() && !isFinishing()) {
exitDialog.show();
}
}
到这里就是整个实现逻辑,请不要叫我给demo,多动手,用点脑,相信你很快就可以把这个功能实现的。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
【附】相关架构及资料
资料领取
点击这里免费获取Android IOC架构设计等资料
出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频**
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-GP28kLiH-1710827992687)]
【附】相关架构及资料
[外链图片转存中…(img-F9EfMtdX-1710827992687)]
[外链图片转存中…(img-vw8njCoV-1710827992688)]
资料领取
点击这里免费获取Android IOC架构设计等资料
领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。