Questa guida ti 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 lo hai già fatto, potrebbe essere utile rivedere i concetti dei giochi con gli obiettivi.
Prima di iniziare a programmare utilizzando l'API obiettivi:
- Segui le istruzioni per installare e configurare l'app per utilizzare i servizi per i giochi di Google Play nella guida Configurare l'SDK Google Play Services.
- Definisci gli obiettivi che vuoi sbloccare o visualizzare sul gioco seguendo le istruzioni riportate nella guida di Google Play Console.
- Scarica e rivedi gli esempi di codice degli obiettivi nella pagina degli esempi Android.
- Acquisisci familiarità con i consigli descritti nell'elenco di controllo della qualità.
Ottenere un cliente per gli obiettivi
Per iniziare a utilizzare l'API Reports, il gioco deve prima ottenere un oggetto AchievementsClient
. Per farlo, chiama il metodo Games.getAchievementClient()
e trasmetti l'attività.
Sbloccare gli obiettivi
Per sbloccare un obiettivo, chiama il metodo AchievementsClient.unlock()
e trasmetti l'ID 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 (sono necessari diversi passaggi per sbloccarlo), chiama AchievementsClient.increment()
.
Il seguente snippet di codice mostra in che modo la tua app può incrementare i risultati 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 quando raggiunge il numero di passaggi richiesto.
È buona norma 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 inoltre di seguire queste best practice per evitare di superare la quota API.
Visualizzazione degli obiettivi
Per mostrare gli obiettivi di un giocatore, chiama AchievementsClient.getAchievementsIntent()
per ottenere un Intent
e creare l'interfaccia utente predefinita per gli obiettivi. Il gioco potrà richiamare l'interfaccia utente chiamando
startActivityForResult
.
Il seguente snippet di codice mostra in che modo la tua app può visualizzare l'interfaccia utente degli obiettivi predefinita.
Nello snippet, RC_ACHIEVEMENT_UI
è un numero intero arbitrario che il gioco utilizza come codice della 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'UI predefinita per gli obiettivi.
