Я хочу вручную обработать операции connect()
и disconnect()
на GoogleApiClient
. Я пытаюсь:GoogleApiClient: невозможно вручную подключиться и выполнить signOut после этого
- строить новый
GoogleApiClient
(безenableAutoManage
) - вызова
connect()
- когда
onConnected()
называется выполнятьsignOut
- вызов
disconnect()
послеsignOut
закончилась
Вот пример:
fun signOut(googleApiClient: GoogleApiClient, resultCallback: (Status) -> Unit) {
Auth.GoogleSignInApi.signOut(googleApiClient).setResultCallback(resultCallback)
}
fun test() {
val googleApiClient = GoogleApiClient.Builder(activity)
.addApi(Auth.GOOGLE_SIGN_IN_API, buildGoogleSignInOptions(googleAuthId))
.build()
googleApiClient.registerConnectionCallbacks(object : ConnectionCallbacks {
override fun onConnected(connectionHint: Bundle?) {
signOut { status ->
//TODO something with status
googleApiClient.disconnect()
}
}
override fun onConnectionSuspended(cause: Int) {
//nop
}
})
googleApiClient.registerConnectionFailedListener {
//TODO handle failure
}
googleApiClient.connect()
}
Однако когда onConnected()
называется signOut
вызов не выполняется
IllegalStateException: GoogleApiClient is not connected yet
Я делаю что-то неправильно, или это ошибка из библиотеки?
Ошибка, похоже, с этим [SO thread] (http://stackoverflow.com/questions/29343922/googleapiclient-is-throwing-googleapiclient-is-not-connected-yet-after-onconne) и была решена. – noogui
@noogui Спасибо! Перемещение создания клиента в 'onCreate()' звучит скорее обходным решением, чем решением, но я думаю, что больше ничего не могу сделать. Как говорится в этой теме, невозможно сообщить об этой ошибке Google ... – wverdese