首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android GoogleSignIn API错误状态{statusCode=NETWORK_ERROR,resolution=null}

Android GoogleSignIn API错误状态{statusCode=NETWORK_ERROR,resolution=null}
EN

Stack Overflow用户
提问于 2016-11-06 13:06:44
回答 1查看 1.3K关注 0票数 1

日安!我在使用GoogleSignInApi时遇到了问题。当我通过WIFI连接使用它时,它的工作原理非常棒。但是,当我关闭WIFI,并且只使用移动数据时,我将从GoogleSignInStatusCodes.NETWORK_ERROR活动结果中获得Auth.GoogleSignInApi.getSignInIntent

我正在使用Firebase进行身份验证,但我想这与模块无关,因为我直接从GoogleSignInApi获得网络错误。

这就是我设置SignInOptions时的样子:

代码语言:javascript
复制
String mClientId = activity.getString(R.string.default_web_client_id);
GoogleSignInOptions googleSignInOptions;

GoogleSignInOptions.Builder builder = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(mClientId);               

for (String scopeString : idpConfig.getScopes()) {
    builder.requestScopes(new Scope(scopeString));
}

if (!TextUtils.isEmpty(email)) {
    builder.setAccountName(email);
}
googleSignInOptions = builder.build();

mGoogleApiClient = new GoogleApiClient.Builder(activity)
.enableAutoManage(activity, AUTO_MANAGE_ID, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
.build();

我就是这样启动SignIn活动的:

代码语言:javascript
复制
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
activity.startActivityForResult(signInIntent, RC_SIGN_IN);

我在这里看到NETWORK_ERROR

代码语言:javascript
复制
 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == RC_SIGN_IN) {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            if (result != null) {
                if (result.isSuccess()) {
                    mIDPCallback.onSuccess(createIDPResponse(result.getSignInAccount()));
                } else {
                    onError(result);
                }
            } else {
                onError("No result found in intent");
            }
        }
    }

在钥匙等方面,我已经正确配置了所有的东西,因为它在WIFI上运行得很好。

在权限结束时,我请求了所有权限(并且也正确地处理了Android6.0)

代码语言:javascript
复制
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />

任何帮助都是徒劳无功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 18:47:28

原来我已经禁用了Google Play Settings的背景数据。这导致我在默认情况下即使在3G上也有正确的互联网连接,但是GooglePlay服务被屏蔽以访问互联网,从而阻止了任何GooglePlay服务的运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40449677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档