Когда я вызываю createMatch()
на TurnBasedMultiplayerClient
, задача, которую он возвращает, является false(task.isSuccessful)
, и я получаю исключение com.google.android.gms.common.api.ApiException: 26502: CLIENT_RECONNECT_REQUIRED
.
В документации говорится, что GoogleApiClient находится в несовместимом состоянии, но как это сделать?Я переподключаю это?У меня нет объекта GoogleAPiClient
, поэтому я не могу просто вызвать GoogleAPiClient.reconnect()
.
. Я использую пользовательский интерфейс по умолчанию для выбора игроков:
private fun onStartMatchClicked() {
val allowAutoMatch = true
mTurnBasedMultiplayerClient = Games.getTurnBasedMultiplayerClient(this@MultiplayerActivity, clientAccount!!)
mTurnBasedMultiplayerClient!!.getSelectOpponentsIntent(1, 1, allowAutoMatch)
.addOnSuccessListener { intent -> startActivityForResult(intent, RC_SELECT_PLAYERS) }
}
Вот onActivityResultметод:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_SELECT_PLAYERS) {
if (resultCode != Activity.RESULT_OK) {
finish()
return
}
val invitees = data!!.getStringArrayListExtra(Games.EXTRA_PLAYER_IDS)
// Get automatch criteria
var autoMatchCriteria: Bundle? = null
val minAutoPlayers = data.getIntExtra(Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS, 0)
val maxAutoPlayers = data.getIntExtra(Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS, 0)
autoMatchCriteria = RoomConfig.createAutoMatchCriteria(minAutoPlayers,
maxAutoPlayers, 0)
val tbmc = TurnBasedMatchConfig.builder()
.addInvitedPlayers(invitees)
.setAutoMatchCriteria(autoMatchCriteria).build()
mTurnBasedMultiplayerClient!!.createMatch(tbmc).addOnCompleteListener { task ->
if (task.isSuccessful) { //this is where I get the exception
match = task.result
} else {
// There was an error. Show the error.
var status = CommonStatusCodes.DEVELOPER_ERROR
val exception = task.exception
if (exception is ApiException) {
val apiException = exception as ApiException?
status = apiException!!.statusCode
}
handleError(status, exception)
}
}
}
}