集成google登录之前需要有一下三点要求,只有具备一下两点要求才能集成google登录:
        1,android 运行版本4.0及更新版本
        2,android 设备支持谷歌服务
    准备工作
    首先得在谷歌开发者后台上面创建一个自己的项目,网址:https://console.developers.google.com
    
    
    点击“Credentials”选择“OAuth Client ID”创建一个名为LoginSimpleDemo的项目:
    
    
    接下来如1所示,选择“Android Learn More”:
    
    
    上面会出来让填写name和SHA-1的地方,在这里如3所示获取SHA-1的方法是用命令直接获取,但是我的用命令获取的时候会出现错误,错误如下所示:
    
    其实还有另外一种方法获取,就是在android studio中获取(如下图):
        1,选择android如1
        2,选中Gradle Scripts
        3,打开Gradle
        4,点击sync同步按钮,同步一下
        5,双击Tasks->android下面的signingReport
        6,双击之后就会生成SHA-1,在下图6处
    
    
    把SHA-1值填上之后,点击create:
    
    之后Tab选择“OAuth agree screen”, 之后填入你的邮箱还有project名称,之后点击“Save”(PS:Project中不能含有google,否则会报错):
    
    
    在下面这个网址中下载google-services.json文件,网址: https://developers.google.com/identity/sign-in/android/start-integrating?authuser=0 , 点击 按钮“GET A CONFIGURATION FILE”,进入到获取gson文件的页面,
    
    
    分别选中自己创建的app name和package name, 然后点击下面的按钮:
    
    
    然后选中sign in模块,如下图,之后点击按钮2:
    
    
    就进入了下载google-services.json文件的页面了,点击下载即可,下载下来之后放到你的project下面的app的根目录下面如下图:
    
    
    好了,准备阶段结束了,是不是感觉还是挺麻烦的,其实只要流程都看明白了,回过头来梳理其实也没那么麻烦,下面是真正的集成阶段了,其实集成阶段很简单,因为代码量很少;
    
    集成
    首先需创建一个GoogleApiClient对象:
        private GoogleApiClient mGoogleApiClient;
    之后初始化:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)

.requestId()

.requestProfile()

.requestEmail()

.build();

mGoogleApiClient = new GoogleApiClient.Builder(this)

.enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener(){

@Override

public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

}

})

.addApi(Auth.GOOGLE_SIGN_IN_API, gso)

.build();

    之后就是登录发起:
    
    Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(intent, RC_SIGN_IN);  //RC_SIGN_IN是requestcode
    
    在onActivityResult中拦获取登录的回调:
    
    GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        handleSignInResult(result);
    
    在登录回调中可以获取用户的google账号的id,name,photourl等信息,至此整个登录过程完成。

  /**
    * Google plus 登陆回调
    */
  private void handleSignInResult(GoogleSignInResult result) {
    Log.i(TAG, "handleSignInResult----" + result.isSuccess());
    if (result.isSuccess()) {
      GoogleSignInAccount account = result.getSignInAccount();
      Log.i(TAG, "id--------" + account.getId() + "----name----" + account.getDisplayName() + "---photo--" + account.getPhotoUrl());
    }
  }

      最后不要忘了加入网络访问的权限奥~
    
      我写博客有个习惯,就是把每一个步骤都尽量讲的详细,因为在我遇到谷歌登录的时候,搜了一下博客,发现很多博客写的都忽略了一些很重要的过程,比如google-services.json等,所以我就决定写一篇比较详细的介绍集成google登录的文章,以方便初次接触google官方一些东西的接入的习惯和方式,希望能够带给大家一些帮助。
    
      好了,就写到这吧,希望这篇文章对大家有所帮助。
 
  如要转载,请注明出处,谢谢!
 
  欢迎关注我的博客园博客,地址是:
 
 
  欢迎大家扫码关注我的微信公众号,我会定期发布一些博客,分享一些知识点。
 
  

android应用集成google登录的更多相关文章

  1. Android 应用程序集成Google 登录及二次封装

    谷歌登录API:  https://developers.google.com/identity/sign-in/android/ 1.注册并且登录google网站 https://accounts. ...

  2. ShareSDK 集成 Google+ 登录 400. Error:redirect_uri_mismatch 和 Error Domain=ShareSDKErrorDomain Code=204

    最近在集成ShareSDK中 Google+ 登录授权时候 出现了如下几个问题 1.    400.  Error:redirect_uri_mismatch 出现这种情况, redirectUri应 ...

  3. 在Android App中集成Google登录

    技术文章 来源:码农网 发布:2016-09-19 浏览:194 摘要:今天,几乎所有的web和移动app都自带谷歌和Facebook登录,这对app开发者和用户来说是一个非常有用的功能,因为几乎每个 ...

  4. android应用集成facebook登录

      之前都是做国内的应用开发,没有用过国外的三方登录,比如谷歌登录.facebok登录,最近参与了一个海外的支付相关的项目,调研了一下谷歌登录和facebook登录,其实调研之后觉得也是很简单的,尤其 ...

  5. android studio 集成微信登录

    参考: 1.http://blog.csdn.net/suma_sun/article/details/50752528 2.这个更全面一点 : http://www.jb51.net/article ...

  6. Android集成Google地图详细步骤记录

    先贴下Google官方的地图demo地址:https://github.com/googlemaps/android-samples 那么接下来第一步,申请Google的API key. 使用谷歌账号 ...

  7. php的laravel框架快速集成微信登录

    最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...

  8. Android App集成支付宝

    原地址:http://blog.csdn.net/wenbingoon/article/details/7933078 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统 ...

  9. Asp.net MVC集成Google Calendar API(附Demo源码)

    Asp.net MVC集成Google Calendar API(附Demo源码) Google Calendar是非常方便的日程管理应用,很多人都非常熟悉.Google的应用在国内不稳定,但是在国外 ...

随机推荐

  1. Nginx Location 匹配

    location匹配命令 ~      #波浪线表示执行一个正则匹配,区分大小写~*    #表示执行一个正则匹配,不区分大小写^~    #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配 ...

  2. 一起写框架-MVC框架-基础功能-Date类型数据绑定(七)

    实现功能 表单请求传递的数据,格式为以下格式的日期时间数据. (1):yyyy-MM-dd hh:mm:ss (2):yyyy-MM-dd 执行方法可以使用Date类型接收. 实现思路 1.获得表单字 ...

  3. java的配置环境简介

    ============================================================================== 学java对很多人来说并不陌生,听的最多的 ...

  4. nginx负载均衡简单配置

    nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132        web服务器192.168.232.133        web服务器192.168.232.134 ...

  5. 学习MySQL(下)

    具体实例 22.MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 1.如果需要修改数据表的名称,可以在 ALTER TABLE 语句中使 ...

  6. 解决div里面img标签后面跟着空白符

    直接在div里面添加img标签有一个坑,img的高度会莫名添加几个像素的高度,查询之后才知道原来css2出现的问题. 引起这个问题原来是img标签默认基线引起的,vertical-align:base ...

  7. Less 编译工具

    Less 编译工具 虽然你可以选择在浏览器端使用Less,直接在页面中嵌入一个 Less.js 文件,你也可以选择在服务器端使用Less,使用命令行将Less文件编译成最终的CSS文件. 然而,这两种 ...

  8. 漫谈 SLAM 技术(上)

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:解洪文 导语 随着最近几年机器人.无人机.无人驾驶.VR/AR的火爆,SLAM技术也为大家熟知,被认为是这些领域的关键技术之一.本文对S ...

  9. Teredo Tunnel Adapter: Error Code 10

    Teredo Tunneling 该设备无法启动 错误代码 ErrCode:10 解决方法 前文: Win7 系统,打算开启IPV6,本地连接的网络 ip6 驱动是异常的,先重新安装了网卡驱动. 过程 ...

  10. CentOS 7.2 配置mysql5.7

    准备篇:一.配置防火墙,开启80端口.3306端口CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙.1.关闭firewall:systemctl stop f ...