Obiettivi per i giochi Android

Questa guida mostra come utilizzare le API degli obiettivi in un'applicazione per Android per sbloccare e visualizzare gli obiettivi nel tuo gioco. Puoi trovare le API in com.google.android.gms.games e com.google.android.gms.games.achievements pacchetti.

Prima di iniziare

Se non l'hai ancora fatto, potrebbe essere utile consultare il concetti del gioco degli obiettivi.

Prima di iniziare a programmare con l'API Obiettivi:

Acquisisci un cliente per gli obiettivi

Per iniziare a utilizzare l'API Obiettivi, il tuo gioco deve prima ricevere un AchievementsClient . A questo scopo, puoi richiamare Games.getAchievementClient() e passare l'attività.

Sblocca obiettivi

Per sbloccare un obiettivo, chiama il AchievementsClient.unlock() e trasmette 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 (ovvero, vengono necessari diversi passaggi necessario per sbloccarlo), chiama invece il numero AchievementsClient.increment().

Il seguente snippet di codice mostra in che modo l'app può incrementare la visibilità risultato:

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

Non devi scrivere altro codice per sbloccare l'obiettivo. Servizi per i giochi di Google Play sblocca automaticamente l'obiettivo una volta raggiunto il numero richiesto di passaggi.

È buona norma definire gli ID obiettivo nel file strings.xml, quindi il gioco può fare riferimento agli obiettivi per ID risorsa. Quando effettui chiamate a aggiorna e carica gli obiettivi, segui anche queste best practice per evitare di superare il limite dell'API quota.

Mostra obiettivi

Per mostrare gli obiettivi di un giocatore, chiama AchievementsClient.getAchievementsIntent() per ottenere Intent per creare l'interfaccia utente predefinita degli obiettivi. A questo punto il gioco può visualizzare alla UI richiamando startActivityForResult

Il seguente snippet di codice mostra come la tua app può visualizzare l'URL predefinito dell'obiettivo. Nello snippet, RC_ACHIEVEMENT_UI è un valore arbitrario numero intero utilizzato dal gioco 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 della UI predefinita degli obiettivi.