为什么GoogleApiClient的blockingConnect方法返回ConnectionResult.CANCELED?

时间:2015-05-11 11:46:06

标签: android google-plus google-play-services google-api-client

为什么GoogleApiClient的blockingConnect方法返回ConnectionResult.CANCELED,而在同一个调用期间,我从OnConnectionFailedListener获取ConnectionResult.SIGN_IN_REQUIRED?

我认为blockingConnect方法应该返回与OnConnectionFailedListener.onConnectionFailed中相同的ConnetionResult。

这是GoogleApiClient中的错误吗?

下面是一个示例代码(应该在后台线程中执行)。

 GoogleApiClient googleApiClient = new GoogleApiClient.Builder(LoginActivity.this)
                        .addApi(Plus.API)
                        .addScope(Plus.SCOPE_PLUS_LOGIN)
                        .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
                            @Override
                            public void onConnectionFailed(ConnectionResult connectionResult) {

                            }
                        })
                        .build();
ConnectionResult connectionResult = googleApiClient.blockingConnect(30, TimeUnit.SECONDS);

我正在使用'com.google.android.gms:play-services-plus:7.3.0'

1 个答案:

答案 0 :(得分:1)

也有这个问题。这就是我到目前为止所做的事情。 当您在构建GoogleApiClient时明确设置帐户名称时,blockingConnect方法返回SUCCESS。否则返回CANCELED。但是,作为评论中提到的nLL,blockingConnect特别在早期的Play服务版本6.5.87中返回SIGN_IN_REQUIRED,因此您可以尝试使用此版本。