Я получаю множество сообщений об аварии моего приложения при попытке использовать Plus 'People Api для доступа к основным данным профиля пользователя ,GoogleApiClient имеет дополнительный файл Plus.API и не подключен к Plus с новым знаком Google, введенным в Play Services. 8.3
Вот моя установка GoogleApiClient
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestScopes(new Scope(Scopes.PROFILE))
.requestScopes(new Scope(Scopes.PLUS_LOGIN))
.requestIdToken(<id_token>)
.requestProfile()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addApi(Plus.API)
.addConnectionCallbacks(this)
.build();
Получение IllegalStateException на этой линии:
Person person = Plus.PeopleApi.getCurrentPerson(mGoogleApiClientPlus)
java.lang.IllegalStateException: GoogleApiClient имеет дополнительный Plus.API и не подключен к плюсу. Используйте GoogleApiClient.hasConnectedApi (Plus.API), чтобы защитить этот вызов.
Этот код вызывается только после того, как google sign возвращается с подписанным пользователем. Так почему же не связан плюс апи?
Вы запрашиваете область с дополнительным доступом, но не обрабатывается ли она автоматически при добавлении Plus Api к клиенту API Google? –
Pls читает https://developers.google.com/android/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN – BNK
Спасибо, что поделились ссылкой. Я добавил эту область в gso. Тем не менее, он все еще сбой с тем же самым исключением при первом входе в систему, когда пользователь спрашивает о разрешениях в потоке входа. Я отключу приложение и повторю попытку, он работает и не показывает мне диалог разрешения. Но он должен отображать диалоговое окно с разрешением, например, это первый вход в систему. Таким образом, приложение не отключается, и я не могу повторить тест. Какие-нибудь советы здесь? –