Android Google登录接入

官方文献:

        1、前期准备:

https://developers.google.cn/identity/sign-in/android/legacy-start-integrating?hl=zh-cnicon-default.png?t=O83Ahttps://developers.google.cn/identity/sign-in/android/legacy-start-integrating?hl=zh-cn

        2、具体开发:

新版 Google Sign-In API  |  Authentication  |  Google for Developersicon-default.png?t=O83Ahttps://developers.google.cn/identity/sign-in/android/sign-in-identity?hl=zh-cn

        3、操作参考:

 https://juejin.cn/post/7383652378370736167icon-default.png?t=O83Ahttps://juejin.cn/post/7383652378370736167

代码实现:

        1、直接复制我写的工具类:GoogleLoginUtils
/*** @Date: 2024/11/11* @Author: xinghai.zhao* @role:Google登录工具类*/
object GoogleLoginUtils {var mGoogleIdToken: String = "xxxx"fun goLogin(activity: AppCompatActivity) {//使用gso指定的选项构建一个GoogleSignInClientval client = GoogleSignIn.getClient(activity, GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail()      //指定您的应用程序请求电子邮件信息.requestId()        //指定您的应用程序请求用户标识.requestIdToken(mGoogleIdToken) //指定请求用于身份验证用户的ID令牌.requestProfile()   //指定您的应用程序请求用户的个人资料信息.build())activity.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { activityResult ->if(activityResult.resultCode == RESULT_OK) {handleSignInResult(activity,GoogleSignIn.getSignedInAccountFromIntent(activityResult.data))}}.launch(client.signInIntent)}fun handleSignInResult(activity: Activity, completedTask: Task<GoogleSignInAccount>) {try {val account = completedTask.getResult(ApiException::class.java)val displayName = account?.displayNameval email = account?.emailval id = account?.idval idToken = account?.idTokenLogUtil.e("google-displayName:${displayName},googleEmail:${email},googleId:${id},googleIdToken:${idToken}")googleLoginSuccess(activity, id, email)      //将获取数据传入} catch (e: ApiException) {when (e.statusCode) {7 -> {LogUtil.e("网络不给力,请再试一次")}12500 -> {LogUtil.e("当前设备不支持")}10 -> {LogUtil.e("环境配置步错误,请稍后再试")}}LogUtil.e("google-LoginFailed${e.statusCode}")}}private fun googleLoginSuccess(activity: Activity, id: String?, email: String?) {val date = hashMapOf<String, String>()if (id != null) {date["id"] = id}if (email != null) {date["email"] = email}HttpUtils.post(activity, HttpUtils.URL_Login, date,onResponse = {//todo 请求成功后 json解析}, onFailure = {//todo 请求失败后处理})}
}
        2、在Activity的登录按钮点击事件中调用:
    GoogleLoginUtils.goLogin(this)

        类中的网络请求工具HttpUtils来这里复制:

Android 用80行代码 封装最简单网络请求 HttpUtils-CSDN博客文章浏览阅读213次,点赞11次,收藏5次。在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式https://zhaoxinghai.blog.csdn.net/article/details/143712192

_______________________________________________________________________

如果您感觉文章有用的话,麻烦点个赞吧!
如果您发现文章有任何错误或建议,请评论区留言或者私信!
深海谢过各位的支持,一起加油!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)

笔记整理&#xff1a;和东顺&#xff0c;天津大学硕士&#xff0c;研究方向为软件缺陷分析 论文链接&#xff1a;https://aclanthology.org/2024.acl-long.558/ 发表会议&#xff1a;ACL 2024 1. 动机 虽然大语言模型&#xff08;LLMs&#xff09;已经在自然语言理解和生成任务…

Spring Cloud Data Flow快速入门Demo

1.什么是Spring Cloud Data Flow&#xff1f; Spring Cloud Data Flow 是一个用于构建和编排数据处理流水线的云原生框架。它提供了一种简化的方式来定义、部署和管理数据处理任务和流应用程序。以下是一些关键特性和组件&#xff1a; 关键特性 流处理&#xff1a; 支持实时数…

C# .NET环境下调用ONNX格式YOLOV8模型问题总结

我的环境是&#xff1a; Visual Studio: 2019 显卡&#xff1a; 一、遇到问题 1、EntryPointNotFoundException:无法在DLL“onnxruntime”中找到名为“OrtGetApiBase”的入口点。差了下原因&#xff0c;入口点是启动项中的问题。 原因&#xff1a;之前用yolov7时安装的版本在C…

量子感知机

神经网络类似于人类大脑&#xff0c;是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题&#xff0c;是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子…

AI Large Language Model

AI 的 Large Language model LLM , 大语言模型&#xff1a; 是AI的模型&#xff0c;专门设计用来处理自然语言相关任务。它们通过深度学习和庞大的训练数据集&#xff0c;在理解和生成自然语言文本方面表现出色。常见的 LLM 包括 OpenAI 的 GPT 系列、Google 的 PaLM 和 Meta…

运维团队3D可视化智能机房管理方案

随着信息技术的飞速发展&#xff0c;机房作为信息技术基础设施的核心部分&#xff0c;其管理效率与可视化程度对运维团队的工作质量有着直接影响。本文将介绍一种结合3D可视化技术的机房管理方案&#xff0c;为运维团队提供一种新的视角和工具&#xff0c;以提升机房管理的效率…

CKA认证 | Day2 K8s内部监控与日志

第三章 Kubernetes监控与日志 1、查看集群资源状态 在 Kubernetes 集群中&#xff0c;查看集群资源状态和组件状态是非常重要的操作。以下是一些常用的命令和解释&#xff0c;帮助你更好地管理和监控 Kubernetes 集群。 1.1 查看master组件状态 Kubernetes 的 Master 组件包…

111 - Lecture 10

File I/O and GUI with JavaFX 文件输入/输出与JavaFX图形用户界面 一、Overview 1. File I/O &#xff08;1&#xff09; learning Java File I/O mechanism &#xff08;2&#xff09; writing into and reading from a file 使用文件I/O进行数据读取和…

分享一下arr的意义(c基础)(必看)(牢记)

arr 即数组名 一般指数组首元素地址 在两种情况下不是 1&#xff1a;sizeof&#xff08;arr&#xff09; arr指整个数组简单讲解一下strlen与sizeof&#xff08;c基础&#xff09;_strzeof在c语言中什么意思-CSDN博客 2&#xff1a;printf&#xff08;"%p",&…

大数据基于Spring Boot的化妆品推荐系统的设计与实现

摘 要 随着大数据时代的到来&#xff0c;人们对于个性化服务的需求越来越高。化妆品推荐系统作为一个认知智能模型段&#xff0c;在为消费者提供更好的购物体验方面发挥了重要作用。本研究基于大数据技术设计了一个高效准确的化妆品推荐系统。通过对海量数据的分析和处理&…

NUXT3学习日记四(路由中间件、导航守卫)

前言 在 Nuxt 3 中&#xff0c;中间件&#xff08;Middleware&#xff09;是用于在页面渲染之前或导航发生之前执行的函数。它们允许你在路由切换时执行逻辑&#xff0c;像是身份验证、重定向、权限控制、数据预加载等任务。中间件可以被全局使用&#xff0c;也可以只在特定页…

在Unity环境中读取Excel配置文件(入门)

使用Excel作为配置的优势 使用Excel作为配置文件有相对普通的文本文档/json等类型的配置文件有一个更好的优点,更易于编辑,更易读.譬如上面的例子,我可以制作一个人员名单,可以记录它们的姓名,年龄等信息,每一行就是一个对象,该表就是一个List. 环境准备 GitHub - ExcelDataR…

Maven maven项目构建的生命周期 Maven安装配置 IDEA 配置 Maven

一&#xff0c;Maven的概述 Maven的作用&#xff1a;专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#xff1a; 提供了一套标准化的项目结构提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c;打包&#xff0c;发布……&#xff09;提…

VM虚拟机装MAC后无法联网,如何解决?

✨在vm虚拟机上&#xff0c;给虚拟机MacOS设置网络适配器。选择NAT模式用于共享主机的IP地址 ✨在MacOS设置中设置网络 以太网 使用DHCP ✨回到本地电脑上&#xff0c;打开 服务&#xff0c;找到VMware DHCP和VMware NAT&#xff0c;把这两个服务打开&#xff0c;专一般问题就…

day06(单片机高级)PCB设计

目录 PCB设计 PCB设计流程 元器件符号设计 原理图设计 元器件封装设计 元器件库使用 PCB设计 目的&#xff1a;学习从画原理图到PCB设计的整个流程 PCB设计流程 元器件符号设计 元器件符号&#xff1a;这是电子元器件的图形表示&#xff0c;用于在原理图中表示特定的元器件。例…

向量数据库FAISS之一:官方简单教程

1.安装 1.conda安装 # CPU-only version --> Linux (x86_64 and arm64), OSX (arm64 only), and Windows (x86_64) $ conda install -c pytorch faiss-cpu1.8.0# GPU(CPU) version --> Linux (x86_64 only) for CUDA 11.4 and 12.1 $ conda install -c pytorch -c nvid…

VMware Workstation 17.6.1

概述 目前 VMware Workstation Pro 发布了最新版 v17.6.1&#xff1a; 本月11号官宣&#xff1a;针对所有人免费提供&#xff0c;包括商业、教育和个人用户。 使用说明 软件安装 获取安装包后&#xff0c;双击默认安装即可&#xff1a; 一路单击下一步按钮&#xff1a; 等待…

java实现小程序接口返回Base64图片

文章目录 引言I java 接口返回Base64图片接口设计获取验证码图片-base64字符串获取验证码图片-二进制流arraybufferII 小程序端代码过期代码: 显示文件流图片(arraybuffer)知识扩展:微信小程序下载后端返回的文件流引言 场景: 图形验证码 背景: 接口返回arraybuffer的格式…

transformer.js(一):这个前端大模型运行框架的可运行环境、使用方式、代码示例以及适合与不适合的场景

随着大模型的广泛应用&#xff0c;越来越多的开发者希望在前端直接运行机器学习模型&#xff0c;从而减少对后端的依赖&#xff0c;并提升用户体验。Transformer.js 是一个专为前端环境设计的框架&#xff0c;它支持运行基于 Transformer 架构的深度学习模型&#xff0c;尤其是…

xiaolin coding 图解网络笔记——HTTP篇

1. HTTP 是什么&#xff1f; HTTP 是超文本传输协议&#xff08;HyperText Transfer Protocol&#xff09;&#xff0c;一个用在计算机世界里专门在【两点】之间【传输】文字、图片、音频、视频等【超文本】数据的【约定和规范】。 2. HTTP 常见的状态码有哪些&#xff1f; …