Ошибка BaseGameUtils игровых сервисов Google Play

Я сделал проект Android, в котором я хотел бы использовать GPGS. Я настроил проект, сделал некоторые достижения. Я использую библиотеку BaseGameUtils в качестве основы. В начале приложение спрашивает, какую учетную запись я хотел бы использовать, и все идет хорошо. Я мог бы открыть действие «Достижения» с помощью этого кода:

if (gameHelper.isSignedIn()) {
    startActivityForResult(Games.Achievements.getAchievementsIntent(gameHelper.getApiClient()), 101);
} else if (!gameHelper.isConnecting()) {
    loginGPGS();
}

Однако, если я там, и я открываю меню параметров в этом действии и выхожу, и я пытаюсь снова открыть достижения, мое приложение вылетает с сообщением о том, что я должен войти в систему, прежде чем пытаться их получить. И хотя это правда, я предположил, что gameHelper.isSignedIn() должен возвращать true только в том случае, если пользователь вошел в систему. BaseGameUtils не работает, или я что-то упустил?


person Rothens    schedule 30.03.2015    source источник


Ответы (1)


Именно эта проблема возникла в системе отслеживания проблем Github. Окончательный ответ был:

На самом деле это не ошибка - он работает как задумано.

Когда вы запускаете действие GPGS, вы должны начать его с startActivityForResult. Если пользователь нажимает кнопку выхода, GoogleApiClient НЕ отключается — он просто находится в состоянии выхода. onActivityResult здесь вернет статус RECONNECT_REQUIRED. В этот момент разработчик должен переподключить свой клиент, и жизнь пойдет своим чередом.

person ianhanniballake    schedule 30.03.2015