java.lang.IllegalStateException: GoogleApiClient еще не подключен

Я пытаюсь добавить достижения в свою игру, используя игровые сервисы Google Play. Активность в моей игре, которая отвечает за предоставление достижения, уже расширяет BaseGameActivity, и он вызывает beginUserInitiatedSignIn, когда он должен дать достижение, поэтому пользователь должен выполнить вход, но в то время, когда я разблокирую достижение для пользователя, я продолжаю получение "java.lang.IllegalStateException: GoogleApiClient еще не подключен". Может кто-нибудь сказать мне, что я делаю не так? Вот код, отвечающий за разблокировку достижения (он находится в классе, который расширяет BaseGameActivity от BaseGameUtils):

private void darConquistaDerrubouArvore(int numeroDeAcertos) {
     // start the asynchronous sign in flow
    mSignInClicked = true;
    mGoogleApiClient.connect();
    if(numeroDeAcertos <= 40)
    {
        try
        {
                beginUserInitiatedSignIn();
                Games.Achievements.unlock(gameHelper.getApiClient(), "CgkIs_27xcoSEAIQAQ");
                Log.i("TelaModoCasual", "usuário não está logado");
                this.onSignInFailed();

        }
        catch(Exception exc)
        {
            exc.printStackTrace();
            this.onSignInFailed();
        }
    }

}

1 ответ

Взгляните на базовый пример https://github.com/playgameservices/android-basic-samples/tree/master/BasicSamples/TypeANumber. Поток соединений для API Google является асинхронным, поэтому вы не можете разблокировать достижение, когда оно у вас есть. Существует обратный вызов onConnected(), который вызывается после установления соединения. В этом методе вы можете разблокировать достижения.

Документация для клиента API находится на http://developer.android.com/google/auth/api-client.html

Другие вопросы по тегам