Как заставить GoogleApiClient запрашивать пользовательский интерфейс выбора аккаунта при каждом вызове connect?

Всякий раз, когда я запускаю код для самогопервый раз в моем первом цикле запуска приложения

GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(context)
    .addApi(Drive.API)
    .addScope(Drive.SCOPE_APPFOLDER) // required for App Folder sample
    .addConnectionCallbacks(this)
    .addOnConnectionFailedListener(this)
    .build();

mGoogleApiClient.connect();

Я вижу следующий выбор аккаунта.

Однако, если предыдущее подключение прошло успешно, и я снова запускаю тот же код дляпервый раз во втором цикле запуска приложения.

Выбор учетной записи не появится снова.GoogleApiClient будет использовать имя учетной записи, я выбираю в предыдущем цикле запуска приложения.

Я хочу, чтобы мой аккаунт каждый раз появлялся.

Я наткнулсяКак очистить учетную запись и учетные данные GoogleApiClient по умолчанию

Предлагаемое решение не работает для моего случая.

mGoogleApiClient.clearDefaultAccountAndReconnect()

Если я был подключен к моему предыдущему циклу приложения, и я вызываю приведенный выше код впервые в моем текущем цикле приложения, я получу следующее исключение.

java.lang.IllegalStateException: GoogleApiClient is not connected yet.
    at com.google.android.gms.common.internal.zzx.zza(Unknown Source)
    at com.google.android.gms.common.api.internal.zzj.clearDefaultAccountAndReconnect(Unknown Source)

Следующий код также не будет работать.

if (mGoogleApiClient.isConnected()) {
    // No chance to execute this code, if you run this code during app launch.
    mGoogleApiClient.clearDefaultAccountAndReconnect();
} else {
    // No account chooser will pop up if you had been connected in previous app life cycle
    mGoogleApiClient.connect();
}

Могу ли я узнать, как заставить GoogleApiClient запрашивать пользовательский интерфейс выбора аккаунта при каждом вызове connect?

Ответы на вопрос(7)

Ваш ответ на вопрос