Android平台添加Google登录便于读取用户信息,也便于将应用发布到GooglePlay。 具体步骤如下,个人觉得还是比较繁琐的,一步一步来看吧。
服务账号创建项目
developers.google.com/workspace/g…
每个Google账号可以创建12个项目。
点击创建。
创建凭据
这里提示要先创建OAuth同意屏幕。
点击创建。
带*的信息都是要填写的,邮箱就用当前这个就好。
回来创建OAuth客户端ID。
选择Android。
然后获取jks的SHA1指纹。debug.keystore的调试密钥库也行,密码是android。
keytool -keystore path-to-debug-or-production-keystore -list -v
path-to-debug-or-production-keystore换成你打包签名用的jks或debug.keystore的路径也行。然后将SHA1信息填入。
然后下载配置信息JSON文件,后续代码会用到里面的信息。
代码编写
创建GoogleSignInClient
GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestId().requestProfile().requestIdToken(getString(R.string.default_web_client_id)).requestEmail().build();mGoogleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);
点击谷歌登录按钮跳转google登录
Intent intent = mGoogleSignInClient.getSignInIntent();startActivityForResult(intent, CODE_SIGN_IN);
登录的回调
@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == CODE_SIGN_IN && resultCode != 0) { Task task = GoogleSignIn.getSignedInAccountFromIntent(data); handleSignInResult(task);}
private void handleSignInResult(Task completedTask) { try { GoogleSignInAccount account = completedTask.getResult(ApiException.class); GgOrFbUserInfo ggOrFbUserInfo = new GgOrFbUserInfo(); ggOrFbUserInfo.setAvatar(account.getPhotoUrl() == null ? "": account.getPhotoUrl().toString()); ggOrFbUserInfo.setLtype(1); ggOrFbUserInfo.setUserId(account.getId()); ggOrFbUserInfo.setEmail(account.getEmail()); ggOrFbUserInfo.setEmailVerified(1); ggOrFbUserInfo.setName(account.getDisplayName()); ggOrFbUserInfo.setLanguage(CommonPramsUtil.getSystemLanguage()); ggOrFbUserInfo.setFamilyName(account.getFamilyName() == null ? "" : account.getFamilyName()); ggOrFbUserInfo.setGivenName(account.getGivenName()); ggOrFbUserInfo.setRegion("zn"); login(ggOrFbUserInfo); // 这里拿用户google账号的信息调用自己业务的login if (account.getPhotoUrl() != null) { Glide.with(LoginActivity.this).load(account.getPhotoUrl()).into(ivAvatar); } } catch (ApiException e) { // 在这里获取错误信息 }}
退出登录
mGoogleSignInClient.signOut().addOnCompleteListener(this, new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { }});
后续
你可以使用firebase做一些其他的事情,如埋点统计等。
dora
原文链接:https://juejin.cn/post/7183633464069980216
最后
如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。
如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。
全套视频资料:
一、面试合集
二、源码解析合集
三、开源框架合集
欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取↓↓↓
来源地址:https://blog.csdn.net/Coo123_/article/details/128595866