Questa guida mostra come utilizzare le API degli obiettivi in un'applicazione Android
per sbloccare e visualizzare gli obiettivi nel tuo gioco. Le API sono disponibili
nei pacchetti com.google.android.gms.games
e com.google.android.gms.games.achievements
.
Prima di iniziare
Se non l'hai ancora fatto, potrebbe esserti utile rivedere i concetti di gioco degli obiettivi.
Prima di iniziare a programmare utilizzando l'API Achievements:
Segui le istruzioni per installare e configurare l'app in modo che utilizzi i servizi per i giochi di Google Play nella guida Configurare l'SDK Google Play Services.
Definisci gli obiettivi che vuoi che il tuo gioco sblocchi o mostri seguendo le istruzioni della guida di Google Play Console.
Scarica e rivedi gli esempi di codice degli obiettivi nella pagina degli esempi di Android.
Acquisisci familiarità con i consigli descritti nella lista di controllo della qualità.
Recuperare un client di obiettivi
Per iniziare a utilizzare l'API Achievements, il tuo gioco deve prima ottenere un oggetto
AchievementsClient
. Puoi farlo chiamando il metodo
Games.getAchievementClient()
e passando l'attività.
Sbloccare obiettivi
Per sbloccare un obiettivo, chiama il
metodo AchievementsClient.unlock()
e trasmetti l'ID dell'obiettivo.
Il seguente snippet di codice mostra come la tua app può sbloccare gli obiettivi:
PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));
Se l'obiettivo è di tipo incrementale (ovvero sono necessari diversi passaggi
per sbloccarlo), chiama AchievementsClient.increment()
.
Il seguente snippet di codice mostra come la tua app può incrementare l'obiettivo del giocatore:
PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);
Non devi scrivere codice aggiuntivo per sbloccare l'obiettivo. I servizi per i giochi di Google Play sbloccano automaticamente l'obiettivo una volta raggiunto il numero di passaggi richiesti.
Una buona pratica è definire gli ID obiettivo nel file strings.xml
, in modo che
il gioco possa fare riferimento agli obiettivi in base all'ID risorsa. Quando effettui chiamate per
aggiornare e caricare gli obiettivi, assicurati di seguire anche queste
best practice per evitare di superare la quota
API.
Mostra obiettivi
Per mostrare gli obiettivi di un giocatore, chiama
AchievementsClient.getAchievementsIntent()
per ottenere un
Intent
per creare l'interfaccia utente predefinita degli obiettivi. Il gioco può quindi visualizzare
l'interfaccia utente chiamando
startActivityForResult
.
Il seguente snippet di codice mostra come la tua app può visualizzare l'interfaccia utente
dei risultati predefinita. Nello snippet, RC_ACHIEVEMENT_UI
è un numero intero
arbitrario che il gioco utilizza come codice di richiesta.
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); } }); }
Di seguito è riportato un esempio dell'interfaccia utente predefinita degli obiettivi.
