Android记录22-关于开发中账号绑定的逻辑处理

news/2024/7/14 5:39:43

有绑定的状态,自然也有取消绑定的状态:

这里的取消绑定只是简单改变应用内的一个状态罢了,并不会跟我们的服务端交互,也不会影响我们的账号登录的状态。

说了这么多,也没看见代码,你们会不会打我,尼玛,打人不打脸,打脸伤自尊,好坏好坏的。

下面贴使用友盟做的账号绑定:

// 整个平台的Controller,负责管理整个SDK的配置、操作等处理

private UMSocialService mController = UMServiceFactory

.getUMSocialService(AppConstants.DESCRIPTOR);

/**

  • 配置分享平台参数

*/

private void configPlatforms() {

// 添加新浪sso授权

mController.getConfig().setSsoHandler(new SinaSsoHandler());

// mController.getConfig().setSinaCallbackUrl(“http://sns.whalecloud.com/sina2/callback”);

// 添加QQ、QZone平台

addQQPlatform();

}

private void addQQPlatform() {

String appId = AppConstants.QQZONE_APPID;

String appKey = AppConstants.QQZONE_APPKEY;

// 添加QQ支持, 并且设置QQ分享内容的target url

UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(SettingActivity.this,

appId, appKey);

qqSsoHandler.setTargetUrl(“http://www.umeng.com”);

qqSsoHandler.addToSocialSDK();

}

在Onclick方法中处理点击事件:

登录方法

/**

  • 授权。如果授权成功,则获取用户信息

  • @param platform

*/

private void login(final SHARE_MEDIA platform) {

mController.doOauthVerify(SettingActivity.this, platform,

new UMAuthListener() {

@Override

public void onStart(SHARE_MEDIA platform) {

LogUtils.logi(TAG, “onStart------”

  • Thread.currentThread().getId());

ToastUtils.showShort(SettingActivity.this,

getString(R.string.oauth_begin));

}

@Override

public void onError(SocializeException e,

SHARE_MEDIA platform) {

LogUtils.logi(TAG, “onError------”

  • Thread.currentThread().getId());

ToastUtils.showShort(SettingActivity.this,

getString(R.string.oauth_fail));

}

@Override

public void onComplete(Bundle value, SHARE_MEDIA platform) {

LogUtils.logi(TAG, “onComplete------”

  • Thread.currentThread().getId());

// 获取uid

String uid = value.getString(“uid”);

if (value != null && !TextUtils.isEmpty(uid)) {

// uid不为空,获取用户信息

getUserInfo(platform);

} else {

ToastUtils.showShort(SettingActivity.this,

getString(R.string.oauth_fail));

}

}

@Override

public void onCancel(SHARE_MEDIA platform) {

LogUtils.logi(TAG, “onCancel------”

  • Thread.currentThread().getId());

ToastUtils.showShort(SettingActivity.this,

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();

}

});

}

取消对话框

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-JTm6u2E7-1719020954362)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
geUtils.KEY_QQ_BINDING, false);

}

}

Toast.makeText(SettingActivity.this, showText,

Toast.LENGTH_SHORT).show();

}

});

}

取消对话框

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-JTm6u2E7-1719020954362)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/13260.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Java 接口

本篇学习接口&#xff0c;并区分接口与抽象类两者之间的异同点。上篇已经讲解了抽象类&#xff0c;有需要的小伙伴可以点链接康康 https://blog.csdn.net/m0_73107796/article/details/139863674 目录 1、 什么是接口 2、 接口定义格式 3、 接口的使用 4、接口特性 5、抽象…

【算法训练记录——Day32】

Day32——贪心算法Ⅱ 1.leetcode122买卖股票的最佳时机II2.leetcode55跳跃游戏3.leetcode45跳跃游戏II4.eetcode1005K次取反后最大化的数组和 目标&#xff1a; leetcode122买卖股票的最佳时机IIleetcode55跳跃游戏leetcode45跳跃游戏IIleetcode1005K次取反后最大化的数组和 1…

高效、智能、安全:小型机房EasyCVR+AI视频综合监控解决方案

一、背景需求分析 随着信息技术的迅猛发展&#xff0c;小型机房在企事业单位中扮演着越来越重要的角色。为了确保机房的安全稳定运行&#xff0c;远程监控成为了必不可少的手段。 二、视频监控 视频监控是机房远程监控的重要组成部分。通过安装IP摄像机及部署视频监控系统Ea…

Unity3d 游戏暂停(timeScale=0)引起的deltaTime关联的系列问题解决

问题描述 游戏暂停的功能是通过设置timeScale0实现的&#xff0c;不过在暂停游戏的时候&#xff0c;需要对角色进行预览和设置&#xff0c;为了实现这个功能&#xff0c;是通过鼠标控制相机的操作&#xff0c;为了使相机的操作丝滑&#xff0c;获取鼠标操作系数乘以Time.delta…

人工智能--搭建人工神经网络

欢迎来到 Papicatch的博客 文章目录 &#x1f349;引言 &#x1f349;神经元与感知器 &#x1f348;神经元&#xff08;Neuron&#xff09; &#x1f348;感知器 &#x1f349;损失函数与梯度下降算法 &#x1f348;损失函数 &#x1f348;梯度下降算法 &#x1f349;…

小熊文件工具箱免费版

小熊文件工具箱是一款基于本地离线操作的一系列工具的合集&#xff0c;最大特点是各种批量任务的执行&#xff0c;包含了智能证件照&#xff0c;自动抠图&#xff0c;直播录制&#xff0c;九宫格切图&#xff0c;拼图&#xff0c;视频格式转换及压缩&#xff0c;zip压缩解压缩&…