【问题标题】:Google Android People error Status{statusCode=NETWORK_ERROR, resolution=null}Google Android People 错误状态{statusCode=NETWORK_ERROR, resolution=null}
【发布时间】:2017-01-03 14:35:18
【问题描述】:

美好的一天。我正在尝试调用 api 方法。一切顺利,登录屏幕正以其圈子的请求呈现给用户,并且当我试图从圈子中获取人员列表时立即繁荣总是出错!

Status{statusCode=NETWORK_ERROR, resolution=null}

我不知道它是什么原因造成的,通过谷歌搜索,我没有发现任何与我的问题更接近的东西,所以我发布了我如何调用此方法的代码。 这是我如何构建和调用它。

 public synchronized GoogleApiClient buildGoogleApiClient(final Activity activity) {
    GoogleSignInOptions gGoogleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestScopes(new Scope(Scopes.PROFILE))
            .requestScopes(new Scope(Scopes.PLUS_LOGIN))
            .requestProfile()
            .requestEmail()
            .build();

    mGoogleApiClient = new GoogleApiClient.Builder(activity)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gGoogleSignInOptions)
            .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
                @Override
                public void onConnected(@Nullable Bundle bundle) {
                    Plus.PeopleApi.loadVisible(mGoogleApiClient, "me").setResultCallback(new ResultCallbacks<People.LoadPeopleResult>() {
                        @Override
                        public void onSuccess(@NonNull People.LoadPeopleResult loadPeopleResult) {
                            Toast.makeText(activity, "", Toast.LENGTH_SHORT).show();
                            Person person = loadPeopleResult.getPersonBuffer().get(0);
                            Log.d("fasfafasfsafasfas", "onSuccess: " + person);
                        }

                        @Override
                        public void onFailure(@NonNull Status status) {
                            if (status.hasResolution()) {
                                try {
                                    // !!!
                                    status.startResolutionForResult(activity, 100);
                                } catch (IntentSender.SendIntentException e) {
                                    mGoogleApiClient.connect();
                                }
                            }
                            Log.d("fasfafasfsafasfas", "onFailure: " + status);
                        }

                    });

                }

                @Override
                public void onConnectionSuspended(int i) {
                    Toast.makeText(activity, "fail", Toast.LENGTH_SHORT).show();
                }
            })
            .addApi(Plus.API)
            .build();
    mGoogleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL);
    return mGoogleApiClient;
}

它总是因网络错误进入 onFailure 回调..我不知道我输入了什么错误... 这是清单中所需的权限

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />

所以请告诉我我的代码有什么问题?

【问题讨论】:

  • 伙计们????没人知道吗?
  • 你读过this吗?为什么没有帮助?
  • 它没有帮助,因为所有 api 键都设置正确
  • 因为如果设置不正确,登录页面对用户是不可见的,但它是可见的
  • 以及与自我相关的人,我正在加载一个人而不是自我的圈子,我能够得到自我人

标签: android google-plus google-signin signing google-people-api


【解决方案1】:

如果有人遇到同样的问题,这里是解决方案。你不需要在获取圈子时指定“我”,同时像这样指定它为NULL

  Plus.PeopleApi.loadVisible(mGoogleApiClient, null
                    ).setResultCallback(new ResultCallbacks<People.LoadPeopleResult>() {
                        @Override
                        public void onSuccess(@NonNull People.LoadPeopleResult loadPeopleResult) {
                            int personCount = loadPeopleResult.getPersonBuffer().getCount();
                            Log.d("fasfafasfsafasfas", "onSuccess: " + personCount);
                            for (int i = 0; i < personCount; i++) {
                                Person eachPerson = loadPeopleResult.getPersonBuffer().get(i);
                                Log.d("fasfafasfsafasfas", "onSuccess: " + eachPerson.getImage().getUrl());
                            }
                        }

                        @Override
                        public void onFailure(@NonNull Status status) {
                            if (status.hasResolution()) {
                                try {
                                    status.startResolutionForResult(activity, requestCode);
                                } catch (IntentSender.SendIntentException e) {
                                    mGoogleApiClient.connect();
                                }
                            }
                            Log.d("fasfafasfsafasfas", "onFailure: " + status);
                        }

                    });

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    相关资源
    最近更新 更多