Osiągnięcia w grach na Androida

Z tego przewodnika dowiesz się, jak korzystać z interfejsów API osiągnięć w aplikacji na Androida do odblokowywania i wyświetlania osiągnięć w grze. Interfejsy API można znaleźć w com.google.android.gms.games i com.google.android.gms.games.achievements pakietów.

Zanim zaczniesz

W razie potrzeby zapoznaj się z pomysłów na osiągnięcia.

Zanim zaczniesz pisać kod za pomocą interfejsu Attribution API:

Uzyskiwanie klienta osiągnięć

Aby zacząć korzystać z interfejsu API osiągnięć, Twoja gra musi najpierw uzyskać AchievementsClient. Aby to zrobić, wywołaj metodę Games.getAchievementClient() i przekazywanie aktywności.

Odblokowywanie osiągnięć

Aby odblokować osiągnięcie, wywołaj metodę AchievementsClient.unlock() i i przekazać identyfikator osiągnięcia.

Ten fragment kodu pokazuje, jak aplikacja może odblokowywać osiągnięcia:

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

Jeśli osiągnięcie jest typu przyrostowego (czyli trzeba wykonać kilka czynności, aby go odblokować), zadzwoń pod numer AchievementsClient.increment().

Ten fragment kodu pokazuje, jak aplikacja może zwiększyć osiągnięcie gracza:

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

Aby odblokować osiągnięcie, nie musisz pisać dodatkowego kodu. Usługi gier Google Play automatycznie odblokowuje osiągnięcie po zdobyciu wymaganej liczby kroków.

Warto zdefiniować identyfikatory osiągnięć w pliku strings.xml, gra może odwoływać się do osiągnięć według identyfikatora zasobu. Podczas wykonywania połączeń w celu zaktualizowania i załadowania Aby osiągnąć sukces, zapoznaj się również z tymi sprawdzonymi metodami, aby uniknąć przekroczenia limitu interfejsu API.

Wyświetlam osiągnięcia

Aby wyświetlić osiągnięcia gracza, wywołaj AchievementsClient.getAchievementsIntent() aby uzyskać Intent do tworzenia domyślnego interfejsu osiągnięć. Gra może następnie wywołać interfejs, wywołując startActivityForResult

Ten fragment kodu pokazuje, jak możesz wyświetlić domyślny interfejs osiągnięcia w aplikacji. We fragmencie kodu RC_ACHIEVEMENT_UI zawiera dowolną liczbę całkowitą, której gra używa jako kodu żądania.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  PlayGames.getAchievementsClient(this)
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Przykład domyślnego interfejsu osiągnięć znajdziesz poniżej.