Android Google登录接入
一、接入准备
- 手机必须有Google套件
Google服务框架,Google Play商店,Google Play服务(使用su谷歌安装器下载安装) - 手机必须可以翻墙
- google开发者账号
二、官网文档
https://developers.google.com/identity/sign-in/android/start-integrating?hl=zh-cn
三、接入步骤
- 依赖google play服务
implementation 'com.google.android.gms:play-services-auth:20.2.0'
配置 Google API 控制台项目
需要使用google开发者账号,创建项目,在项目中根据包名和SHA1值创建应用。
控制台: https://console.cloud.google.com/apis/credentials?hl=zh-cn
代码
3.1 获取GoogleSignInClient 对象
private final String TAG = getClass().getSimpleName();/*** google登录客户端对象*/private GoogleSignInClient mGoogleSignInClient;
private void initGoogleSignInClient() {// Configure sign-in to request the user's ID, email address, and basic// profile. ID and basic profile are included in DEFAULT_SIGN_IN.GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)//请求邮箱.requestEmail()//请求id token(web client id).requestIdToken("660809532020-g7r2qsmjkjv0ttmje013otrb97s0qtil.apps.googleusercontent.com").build();// Build a GoogleSignInClient with the options specified by gso.mGoogleSignInClient = GoogleSignIn.getClient(this, gso);}
3.2 登录
/*** google登录*/private void login() {//使用GoogleSignIn.getLastSignedInAccount方法为当前登录的用户请求个人资料信息。GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);//不存在则请求登录if (account == null) {Intent signInIntent = mGoogleSignInClient.getSignInIntent();mActivityLauncher.launch(signInIntent);} else {showAccount(account);}}private final ActivityResultLauncher<Intent> mActivityLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {if (result.getResultCode() == RESULT_OK) {//回调成功Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(result.getData());handleSignInResult(task);}});/*** 处理数据** @param completedTask*/private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {try {GoogleSignInAccount account = completedTask.getResult(ApiException.class);// Signed in successfully, show authenticated UI.showAccount(account);} catch (ApiException e) {// The ApiException status code indicates the detailed failure reason.// Please refer to the GoogleSignInStatusCodes class reference for more information.Log.e(TAG, "signInResult:failed code=" + e.getStatusCode());Log.e(TAG, "signInResult:failed msg=" + e.getStatusMessage());}}/*** 展示账户信息** @param account*/private void showAccount(GoogleSignInAccount account) {Log.e(TAG, "signInResult:success name:" + account.getDisplayName());Log.e(TAG, "signInResult:success id:" + account.getId());Log.e(TAG, "signInResult:success email:" + account.getEmail());Log.e(TAG, "signInResult:success token:" + account.getIdToken());
}
3.3 登出
/*** 登出*/private void logout() {mGoogleSignInClient.signOut().addOnCompleteListener(this, new OnCompleteListener<Void>() {@Overridepublic void onComplete(@NonNull Task<Void> task) {Log.e(TAG, "退出登录");}});}
3.4 断开账户
/*** 断开账户,撤销访问(如果用户删除其帐户,则必须删除您的应用程序从Google API获取的信息)。*/private void revokeAccess() {mGoogleSignInClient.revokeAccess().addOnCompleteListener(this, new OnCompleteListener<Void>() {@Overridepublic void onComplete(@NonNull Task<Void> task) {Log.e(TAG, "断开账户");}});}
Android Google登录接入相关推荐
- Google登录接入
本文章仅作为个人笔记 Google登录官网 Google登录官方快速入门文档 GoogleApi控制台 Google登录接入前提: 开发者: 拥有google开发者账号 添加必要jar包 implem ...
- android google 登录登出接入
官方地址 https://developers.google.com/identity/sign-in/android/sign-in 登录 集成google库 dependencies { i ...
- android google 登录流程及遇到的坑
最近在做Facebook 和google第三方登录,Facebook一气呵成,看着官方文档一步一步走,几乎没啥问题 Facebook登录 文档地址 https://developers.faceboo ...
- Android Google地图接入(一)
最近项目中需要接入Google地图,遇到很多问题,现在记录下来,供以后参考. 1. 登录Google API Console,注册Android API密钥(需要翻墙 ~_~) 得到API KEY: ...
- Android QQ 登录接入详细介绍
/ 今日科技快讯 / 近日,百度地图发布2022春节出行大数据.迁徙大数据显示,2022年春运迁徙规模较去年农历同期有明显上升.春节期间全国人口迁徙规模日均值为去年农历同期的近两倍.春节前的迁 ...
- Android FaceBook登录接入--散列密钥获取
官方提供的方法如下: /*** 根据签名文件获取散列密钥* 注意: 如果debug和release签名文件不一致,需要重新生成配置到Facebook*/public static String get ...
- Android Google地图接入(二)
前面完成了地图的显示,现在想要获取位置数据,需要使用到另一个API:Google Play services Location API. 接收位置更新基本流程: 1. 连接LocationServic ...
- Unity接入Google登录
Unity接入Google登录 接入FireBaseSdk和GoogleSignIn插件 FireBase接入文档 GoogleSignIn 编写登录代码 可能出现的问题 运行时弹出Google登录界 ...
- (unity)新手接入Facebook登录,分享以及google登录,Android,IOS,OC接入篇
最近接Android,IOS的Facebook登录,分享 以及Google登录,分享流程以及遇到的问题整理. 一. Android接入 google登录 第一步,前往 [ firebase] http ...
最新文章
- 软件工程个人作业01
- 使用SVD求取矩阵的伪逆
- Chapter 3 Phenomenon——24
- ubuntu下wget下载Linux内核源码、make生成.config文件
- 两个Fragment之间如何传递数据
- 技术贴]强大的DELPHI RTTI–兼谈需要了解多种开发语言
- 03.full_text interval查询
- 《MySQL——备库多线程复制策略。》
- web前端开发工程师必会的5种网页布局方法?
- 计算机网络学习笔记(27. Email应用概述)
- Oracle 无备份情况下的恢复--临时文件/在线重做日志/ORA-00205
- Java编程思想学习录(连载之:初始化与清理)
- 软件工程期末考试复习(二)
- api.execScript
- Oracle GoldenGate Director安装配置详细手册
- CHIP下游分析(仅ChIPseeker包)
- 信号处理:时域和频域的关系
- java新手抖机灵(java新手技巧)
- 资源共享——FTP服务
- Unable to start embedded Tomcat 解决方式(已解决)
热门文章
- 1036. 跟奥巴马一起编程(15)
- 计算机专业如何晋级正高级,已有软考高级证书如何获得正高级职称?
- 云计算基础与应用 第八章 云安全
- 网页使用百度地图后,只显示灰色框框(已解决)
- java集合set不能去重_java集合去重和排序
- htons() ntohl() ntohs() htons()的区别及详解
- Solving environment: failed ResolvePackageNotFound: - ld_impl_linux-64==2.34=h53a641e_4
- 应用层协议的捕获和解析
- c# WPF中System.Windows.Interactivity的使用
- 分享下在国内发售的全系列联想小新平板的型号和对应的海外版