Google+在Android中登录,然后维护离线会话

时间:2015-02-16 06:18:07

标签: android login oauth-2.0 google-plus google-play-services

范围

我想在我的应用中登录谷歌。为此,我提到https://developers.google.com/+/mobile/android/sign-in并且能够创建基本登录。

问题

现在,问题非常有趣。登录过程就像一个魅力,但只有当互联网连接时。让我们来看一个特定的用例:

  1. 我启动了应用程序,使用我的xxxx@gmail.com登录。
  2. 我关闭了应用,重新开始。它会自动登录到xxxx@gmail.com。从技术上讲:onConnected()被调用。 (必须是这样,没问题)
  3. 我关闭了应用,并关闭了互联网连接。
  4. 现在我再次启动了该应用,该帐户会被记录下来,因为我可以在日志中看到:'清除所选帐户的* packagename' - (与此相关的事)
  5. 我再次打开互联网连接,然后启动应用程序,没有任何反应。它(帐户)没有登录(因为它已自动注销)。 从技术上讲:这次onConnectionFailed()被调用
  6. 所以,即使互联网关闭,我也要保留此登录信息,我该怎么办? 其他几个应用就是这样做的。

    自我挖掘

    1. 我浏览了其他热门应用程序的日志,这些应用程序有谷歌登录,即使互联网没有连接,登录仍然存在,并将这些日志与我的应用程序的日志进行比较。日志。
    2. 登录其他应用:

        02-16 00:51:13.493: W/GLSUser(26959): [GLSUser] [GLSUser]  Permission for *packagename* to access oauth2:https://www.googleapis.com/auth/userinfo.email will be managed locally.
      

      登录我的应用:

         02-16 00:50:16.203: W/GLSUser(26959): [GLSUser] [GLSUser]  Permission for *packagename* to access oauth2:https://www.googleapis.com/auth/plus.me will be managed remotely.
      
      1. 我发现只有当我使用scope =

        时才会发生这种奇怪的事情
        Plus.SCOPE_PLUS_PROFILE
        

        但是,当我使用scope =' email'或者'个人资料'或者Plus.SCOPE_PLUS_LOGIN。它在离线模式下工作正常。

      2. 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

很可能您没有存储凭据(Auth Token)并使用它来重新进行身份验证。

从Google API客户端检查this样本中的java。