【发布时间】:2016-04-14 13:44:06
【问题描述】:
每当我在我的第一个应用启动周期中第一次运行代码时
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 将使用帐户名,我在上一个应用启动周期中选择。
我希望每次都弹出我的帐户选择器。
我遇到了How to Clear GoogleApiClient Default Account and Credentials
建议的解决方案不适用于我的情况。
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 时提示帐户选择器 UI?
【问题讨论】:
标签: android google-play-services google-drive-android-api