使用PlusClient时如何避免即时onConnected回调?

时间:2013-06-27 19:23:38

标签: android google-play-services

我一直在编写一些实验代码来测试PlusClient连接流程的工作原理。我按照文档操作,能够弹出帐户选择器,显示授权对话框,并能够访问令牌。

那是昨天。

今天,我完全无法让PlusClient正常连接。会发生什么是在PlusClient.connect()上,立即使用空包调用connect回调。调用PlusClient.getAccountName()返回null。我尝试调用PlusClient.revokeAccessAndDisconnect(),并使用带有INTERNAL_ERROR的connectionResult作为其errorCode调用onAccessRevoked回调。

就像Google Play服务认为它有一个有效的令牌但忘记了谁已登录。有没有办法重置Google Play服务,以便它不再记住我的应用程序的身份验证令牌了?我已经尝试清除Google Play服务和Google服务框架,但这并没有解决我的问题。

编辑:

这实际上是由于我自己的愚蠢而发生的。我已经开始将scopes属性重构为自己的变量,但还没有完成这项工作。我在代码中完成了以下操作:

    final String scopes = Scopes.PLUS_LOGIN + " " 
            + Scopes.PLUS_PROFILE + " " 
            + "https://www.googleapis.com/auth/drive.appdata";

    mPlusClient = new PlusClient.Builder(this, this, this)
              .setVisibleActivities("http://schemas.google.com/AddActivity",                                                            
                   "http://schemas.google.com/BuyActivity")
              .setScopes()
              .build();

问题是setScopes()有一个重载,但我的意思是说setScopes(范围)。这引起了我上面描述的问题。

1 个答案:

答案 0 :(得分:0)

请参阅编辑,了解为什么我不应该在昏昏欲睡时编码。我曾经想过要在PlusClient.Builder中为setScopes方法调用添加一个参数。不确定为什么API会允许这样做。它应该抛出一个很好的例外,我可以用它来追踪我的拼写错误。