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:
- Postępuj zgodnie z instrukcjami instalowania i konfigurowania aplikacji. Usługi gier Google Play w Przewodnik konfigurowania pakietu SDK Usług Google Play.
- Określ osiągnięcia, które gra może odblokowywać lub wyświetlać. postępuj zgodnie z instrukcjami podanymi w przewodniku po Konsoli Google Play.
- Pobierz i przejrzyj przykłady kodu osiągnięć w Strona z przykładami na Androidzie.
- Zapoznaj się z zaleceniami opisanymi w artykule Lista kontrolna jakości.
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 oraz
GoogleSignInAccount
dla obecnego gracza. Aby dowiedzieć się, jak pobrać
informacje o koncie gracza znajdziesz w artykule Logowanie się w grach na Androida.
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:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(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:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(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() { Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(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.