Questa guida ti mostra come usare le API 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 del gioco degli obiettivi.
Prima di iniziare a programmare utilizzando l'API Obiettivi:
Segui le istruzioni per installare e configurare la tua app per utilizzare 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 nella guida di Google Play Console.
Scarica ed esamina gli esempi di codice per gli obiettivi nella pagina di esempi Android.
Acquisisci familiarità con i consigli descritti nell'elenco di controllo della qualità.
Crea un cliente per gli obiettivi
Per iniziare a utilizzare l'API Goals, il gioco deve prima ottenere un oggetto AchievementsClient
. Per farlo, chiama il metodo
Games.getAchievementClient()
e trasmetti l'attività.
Sblocca obiettivi
Per sbloccare un obiettivo, chiama il metodo AchievementsClient.unlock()
e superalo nell'ID obiettivo.
Il seguente snippet di codice mostra come l'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 in che modo la tua app può incrementare il rendimento del player:
PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);
Non è necessario 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 richiesto.
È buona norma definire gli ID degli obiettivi 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 degli obiettivi predefiniti. Il gioco può quindi visualizzare
l'interfaccia utente chiamando
startActivityForResult
.
Lo snippet di codice riportato di seguito mostra come la tua app può visualizzare l'interfaccia utente predefinita degli obiettivi. 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 è mostrato un esempio dell'interfaccia utente predefinita degli obiettivi.