Я пытаюсь добавить достижения в свое приложение. Я использую официальную документацию Google для работы с сервисами Google Play. Я использую signInSilently () для входа в Google Play Игры:
private void signInSilently() {
GoogleSignInOptions signInOptions = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
if (GoogleSignIn.hasPermissions(account, signInOptions.getScopeArray())) {
GoogleSignInAccount signedInAccount = account;
} else {
GoogleSignInClient signInClient = GoogleSignIn.getClient(this, signInOptions);
signInClient
.silentSignIn()
.addOnCompleteListener(
this,
task -> {
if (task.isSuccessful()) {
GoogleSignInAccount signedInAccount = task.getResult();
} else {
}
});
}
}
Я вызываю signInSilently () следующим образом, onStart ():
signInSilently();
gamesClient = Games.getGamesClient(this, Objects.requireNonNull(GoogleSignIn.getLastSignedInAccount(this)));
gamesClient.setViewForPopups(findViewById(android.R.id.content));
В последних двух строках отображается всплывающее окно авторизации. вверху экрана, но когда я хочу разблокировать достижение:
Games.getAchievementsClient(this, Objects.requireNonNull(GoogleSignIn.getLastSignedInAccount(this)))
.unlock(getString(R.string.achievement_first_regular));
gamesClient = Games.getGamesClient(this,
Objects.requireNonNull(GoogleSignIn.getLastSignedInAccount(MainActivity.this)));
gamesClient.setViewForPopups(findViewById(android.R.id.content));
gamesClient.setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
Работает хорошо, разблокировано, но я не вижу анимацию разблокировки вверху экрана, как при авторизации. Может быть, я должен сделать что-то еще? Я читал о клиенте Google API, но я не нашел хорошую документацию об этом.