Ereignisse in Android-Spielen

In diesem Leitfaden erfahren Sie, wie Sie mithilfe der Ereignis-APIs Spieldaten von Spielern für Spielanalysen erfassen die von den Google Play-Spieldiensten zur Verfügung gestellt werden. Die APIs finden Sie in der com.google.android.gms.games.event und com.google.android.gms.games.

Hinweis

Falls Sie dies noch nicht getan haben, kann es hilfreich sein, sich die Konzepte für Spielereignisse.

Bevor Sie mit dem Programmieren mit den Event APIs beginnen:

Ereignisclient abrufen

Um die Event APIs verwenden zu können, muss Ihr Spiel zuerst eine EventsClient-Objekt. Rufen Sie dazu die Methode Games.getEventsClient() und übergeben die Aktivitäten.

Ereignisse senden

Du kannst Code in deinem Spiel hinzufügen, um die Google Play-Spieldienste zu benachrichtigen, sobald Ereignis, das für Ihr Spiel interessant ist, eintritt.

Wenn Sie ein Ereignisupdate senden möchten, rufen Sie EventsClient.increment() mit dem Wert eventId und einem Ganzzahl incrementAmount, die gleich oder größer als 0 ist.

  • Die eventId wird von den Google Play-Spieldiensten generiert, wenn du das erste Mal definierst in der Google Play Console und wird verwendet, um dieses Ereignis in für Ihr Spiel.
  • Mit der incrementAmount-Eingabe kannst du den quantitativen Fortschritt des Spielers im Hinblick auf das Erreichen eines spielspezifischen Ziels. Wenn das Ereignis beispielsweise das Spiel 'Defeat 500bug-eyed monsters' ist, kann der Wert incrementAmount Anzahl der Monster, die der Spieler in einem einzigen Kampf getötet hat.

Hier ist ein Beispiel dafür, wie ein Ereignis mit einem inkrementellen Wert von 1 gesendet wird:

public void submitEvent(String eventId) {
  PlayGames.getEventsClient(this)
      .increment(eventId, 1);
}

Termine werden abgerufen

Sie können alle Ereignisdaten für Ihr Spiel abrufen, die auf den Google-Servern gespeichert sind. EventsClient.load() wird aufgerufen. Im -Methode aufrufen, übergeben Sie einen booleschen Wert, um anzugeben, ob die Google Play-Spieldienste die lokale Daten im Cache auf dem Gerät des Nutzers gespeichert.

Um Daten für bestimmte Ereignisse abzurufen, die Sie in der Google Play Console definiert haben, rufen Sie EventsClient.loadByIds() und übergeben ein Array von Ereignis-IDs in den Eingabeparametern.

Das folgende Snippet zeigt, wie Sie die Google Play-Spieldienste für die Liste aller Ereignisse für Ihr Spiel:

public void loadEvents() {
  PlayGames.getEventsClient(this)
      .load(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) {
          if (task.isSuccessful()) {
            // Process all the events.
            for (Event event : task.getResult().get()) {
              Log.d(TAG, "loaded event " + event.getName());
            }
          } else {
            // Handle Error
            Exception exception = task.getException();
            int statusCode = CommonStatusCodes.DEVELOPER_ERROR;
            if (exception instanceof ApiException) {
              ApiException apiException = (ApiException) exception;
              statusCode = apiException.getStatusCode();
            }
            showError(statusCode);
          }
        }
      });
}