Как удалить API и область действия из GoogleApiClient в Android?

В моем приложении некоторые API Google являются необязательными. (В данном случае API игр.)

В моих настройках пользователь может отказаться от входа в Google Games. Там я звоню

Games.signOut(mGoogleApiClient);
googleApiClient.disconnect();
googleApiClient = createGoogleApiClientWithoutGames();
googleApiClient.connect();

createGoogleApiClientWithoutGames создает новый GoogleApiClient, который не использует API игр и соответствующие области.

  1. Это правильный способ удалить API и область действия с клиента?

  2. Как я могу убедиться, что googleApiClient других действий (которые еще не уничтожены) не используют API игр? В настоящее время при возврате из активности настроек клиент подключается в onStart(), используя текущую конфигурацию клиента (с играми). Отправить локальное широковещательное сообщение и заново создать клиента?


person friedger    schedule 29.01.2016    source источник
comment
developers.google.com/identity/sign-in/web/incremental- авторизация   -  person IntelliJ Amiya    schedule 29.01.2016
comment
@IntelliJAmiya вопрос для Android   -  person tasomaniac    schedule 29.01.2016
comment
Я создал репозиторий на github с простым приложением, которое показывает проблему: github.com/friedger/google-api-client-example/issues/1   -  person friedger    schedule 15.02.2016


Ответы (1)


Я использую переменную состояния, чтобы проверить onStart(), использует ли текущий клиент в MainActivity правильный API. Если нет, я воссоздаю его перед подключением.

Полный исходный код доступен по адресу https://github.com/friedger/google-api-client-example

person friedger    schedule 16.02.2016