Я пытаюсь добавить достижения в свою игру, используя сервисы игровой игры Google. Активность в моей игре, которая отвечает за предоставление достижений, уже расширяет BaseGameActivity и вызывает beginUserInitiatedSignIn, когда она должна дать достижение, поэтому пользователь должен войти в систему, но в то время, когда я разблокирую достижение для пользователя, я сохраняю получение "java.lang.IllegalStateException: GoogleApiClient еще не подключен". Может ли кто-нибудь сказать мне, что я делаю неправильно? Вот код, ответственный за разблокировку достижения (это в классе, который простирается BaseGameActivity, от BaseGameUtils):java.lang.IllegalStateException: GoogleApiClient еще не подключен
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();
}
}
}
Престола [это сообщение] (http://stackoverflow.com/questions/24474986/android-google-play-games-services-connection-error-java- Ланг-illegalstateexc). – frenchDolphin
Да, я видел это сообщение, но я не хочу кнопку входа, я хочу, чтобы мое приложение попыталось сразу же войти в систему. Это невозможно? –
Да, к сожалению, вам нужно попросить разрешения пользователя перед тем, как войти в систему, потому что подписание означает, что ваше приложение получает всевозможные новые разрешения. Вот почему Android заставляет вас сначала показывать диалог. – frenchDolphin