Достижения Google Play Games - PullRequest
       34

Достижения Google Play Games

0 голосов
/ 30 апреля 2020

Я пытаюсь добавить достижения в свое приложение. Я использую официальную документацию 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, но я не нашел хорошую документацию об этом.

...