gpg::AndroidSupport

#include <android_support.h>

Funktionen, die Unterstützung vor Android 4.0 ermöglichen.

Zusammenfassung

Android Lifecycle-Rückrufe

Bei Apps, die auf Geräte mit Android 2.3 oder 3.x (API-Version vor 14) ausgerichtet sind, haben die Google Play-Spieldienste keine Möglichkeit, automatisch Callbacks für den Aktivitätslebenszyklus zu erhalten. In diesen Fällen verwenden die Play-Spieldienste die Aktivität als Eigentümer, um sie über Lebenszyklus-Ereignisse zu informieren. Jede Activity, die ein GameServices-Objekt besitzt, sollte die AndroidSupport::*-Funktionen innerhalb ihrer eigenen Lebenszyklus-Callback-Funktionen aufrufen. Die Argumente in diesen Funktionen stimmen mit denen von Android überein, sodass keine weitere Verarbeitung erforderlich ist.

Für Apps, die auf Android 4.0 oder höher (API-Version 14 oder höher) ausgerichtet sind, sind die meisten dieser Funktionsaufrufe nicht erforderlich. Für solche Apps muss nur die Funktion "OnActivityResult" aufgerufen werden.

Beispielcode für ein Spiel vor Android 4.0 mit einer Java-Aktivität

Fügen Sie in Ihrer Java-Aktivität Folgendes hinzu. Möglicherweise müssen Sie diesen Code mit Ihren vorhandenen Lebenszyklusfunktionen zusammenführen.

import android.app.Activity;
import android.content.Intent;

public class YourActivity extends Activity {
  protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    nativeOnActivityCreated(this, savedInstanceState);
  }

  protected void onDestroy(){
    super.onDestroy();
    nativeOnActivityDestroyed(this);
  }

  protected void onPause(){
    super.onPause();
    nativeOnActivityPaused(this);
  }

  protected void onResume(){
    super.onResume();
    nativeOnActivityResumed(this);
  }

  protected void onStart(){
    super.onStart();
    nativeOnActivityStarted(this);
  }

  protected void onStop(){
    super.onStop();
    nativeOnActivityStopped(this);
  }

  protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    nativeOnActivitySaveInstanceState(this, outState);
  }

  protected void onActivityResult(int requestCode,
                                  int resultCode,
                                  Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    nativeOnActivityResult(this, requestCode, resultCode, data);
  }

  // Implemented in C++.
  private static native void nativeOnActivityCreated(
      Activity activity, Bundle savedInstanceState);
  private static native void nativeOnActivityDestroyed(Activity activity);
  private static native void nativeOnActivityPaused(Activity activity);
  private static native void nativeOnActivityResumed(Activity activity);
  private static native void nativeOnActivitySaveInstanceState(
      Activity activity,
      Bundle outState);
  private static native void nativeOnActivityStarted(Activity activity);
  private static native void nativeOnActivityStopped(Activity activity);
  private static native void nativeOnActivityResult(
      Activity activity,
      int requestCode,
      int resultCode,
      Intent data);
}
Fügen Sie dann in Ihrer nativen Bibliothek die folgenden Weiterleitungsfunktionen hinzu.
void Java_com_example_yourapp_YourActivity_nativeOnActivityCreated(
    JNIEnv* env,
    jobject thiz,
    jobject activity,
    jobject saved_instance_state) {
  gpg::AndroidSupport::OnActivityCreated(env,
                                         activity,
                                         saved_instance_state);
}

void Java_com_example_yourapp_YourActivity_nativeOnActivityDestroyed(
    JNIEnv* env, jobject thiz, jobject activity) {
  gpg::AndroidSupport::OnActivityDestroyed(env, activity);
}

void Java_com_example_yourapp_YourActivity_nativeOnActivityPaused(
    JNIEnv* env, jobject thiz, jobject activity) {
  gpg::AndroidSupport::OnActivityPaused(env, activity);
}

void Java_com_example_yourapp_YourActivity_nativeOnActivityResumed(
    JNIEnv* env, jobject thiz, jobject activity) {
  gpg::AndroidSupport::OnActivityResumed(env, activity);
}

void Java_com_example_yourapp_YourActivity_nativeOnActivitySaveInstanceState(
    JNIEnv* env, jobject thiz, jobject activity, jobject out_state) {
  gpg::AndroidSupport::OnActivitySaveInstanceState(env, activity, out_state);
}

void Java_com_example_yourapp_YourActivity_nativeOnActivityStarted(
    JNIEnv* env, jobject thiz, jobject activity) {
  gpg::AndroidSupport::OnActivityStarted(env, activity);
}

void Java_com_example_yourapp_YourActivity_nativeOnActivityStopped(
    JNIEnv* env, jobject thiz, jobject activity) {
  gpg::AndroidSupport::OnActivityStopped(env, activity);
}

void Java_com_example_yourapp_YourActivity_nativeOnActivityResult(
    JNIEnv* env,
    jobject thiz,
    jobject activity,
    jint request_code,
    jint result_code,
    jobject data) {
  gpg::AndroidSupport::OnActivityResult(
      env, activity, request_code, result_code, data);
}

Beispielcode für ein Spiel für Android 4.0 oder höher mit einer Java-Aktivität

Fügen Sie in Ihrer Java-Aktivität Folgendes hinzu. Möglicherweise müssen Sie diesen Code mit Ihren vorhandenen Lebenszyklusfunktionen zusammenführen.

public class YourActivity extends Activity {
  protected void onActivityResult(int requestCode,
                                  int resultCode,
                                  Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    nativeOnActivityResult(this, requestCode, resultCode, data);
  }

  // Implemented in C++.
  private static native void nativeOnActivityResult(
      Activity activity,
      int requestCode,
      int resultCode,
      Intent data);
}
Fügen Sie dann in Ihrer nativen Bibliothek die folgenden Weiterleitungsfunktionen hinzu.
void Java_com_example_yourapp_YourActivity_nativeOnActivityResult(
    JNIEnv* env,
    jobject thiz,
    jobject activity,
    jint request_code,
    jint result_code,
    jobject data) {
  gpg::AndroidSupport::OnActivityResult(
      env, activity, request_code, result_code, data);
}

Öffentliche statische Funktionen

OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
void
Sollte aufgerufen werden, um Daten aus "onActivityCreated" Ihrer Java-Aktivität weiterzuleiten.
OnActivityDestroyed(JNIEnv *env, jobject activity)
void
Sollte aufgerufen werden, um Daten aus dem Objekt OnActivityDestroyed Ihrer Java-Aktivität weiterzuleiten.
OnActivityPaused(JNIEnv *env, jobject activity)
void
Sollte aufgerufen werden, um Daten aus dem Ereignis "OnActivityPausiert" Ihrer Java-Aktivität weiterzuleiten.
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
Sollte aufgerufen werden, um Daten aus dem OnActivityResult Ihrer Java-Aktivität weiterzuleiten.
OnActivityResumed(JNIEnv *env, jobject activity)
void
Sollte aufgerufen werden, um Daten aus dem Ereignis OnActivityResumed Ihrer Java-Aktivität weiterzuleiten.
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
void
Sollte aufgerufen werden, um Daten aus dem OnActivitySaveInstanceState-Wert Ihrer Java-Aktivität weiterzuleiten.
OnActivityStarted(JNIEnv *env, jobject activity)
void
Sollte aufgerufen werden, um Daten aus OnActivityStarted Ihrer Java-Aktivität weiterzuleiten.
OnActivityStopped(JNIEnv *env, jobject activity)
void
Sollte aufgerufen werden, um Daten aus OnActivityStopped Ihrer Java-Aktivität weiterzuleiten.

Öffentliche statische Funktionen

OnActivityCreated

void gpg::AndroidSupport::OnActivityCreated(
  JNIEnv *env,
  jobject activity,
  jobject saved_instance_state
)

Sollte aufgerufen werden, um Daten aus "onActivityCreated" Ihrer Java-Aktivität weiterzuleiten.

Nur für die Unterstützung von Android 2.3.x erforderlich.

OnActivityDestroyed

void gpg::AndroidSupport::OnActivityDestroyed(
  JNIEnv *env,
  jobject activity
)

Sollte aufgerufen werden, um Daten aus dem Objekt OnActivityDestroyed Ihrer Java-Aktivität weiterzuleiten.

Nur für die Unterstützung von Android 2.3.x erforderlich.

OnActivityPaused

void gpg::AndroidSupport::OnActivityPaused(
  JNIEnv *env,
  jobject activity
)

Sollte aufgerufen werden, um Daten aus dem Ereignis "OnActivityPausiert" Ihrer Java-Aktivität weiterzuleiten.

Nur für die Unterstützung von Android 2.3.x erforderlich.

OnActivityResult

void gpg::AndroidSupport::OnActivityResult(
  JNIEnv *env,
  jobject activity,
  jint request_code,
  jint result_code,
  jobject result
)

Sollte aufgerufen werden, um Daten aus dem OnActivityResult Ihrer Java-Aktivität weiterzuleiten.

OnActivityResumed

void gpg::AndroidSupport::OnActivityResumed(
  JNIEnv *env,
  jobject activity
)

Sollte aufgerufen werden, um Daten aus dem Ereignis OnActivityResumed Ihrer Java-Aktivität weiterzuleiten.

Nur für die Unterstützung von Android 2.3.x erforderlich.

OnActivitySaveInstanceState

void gpg::AndroidSupport::OnActivitySaveInstanceState(
  JNIEnv *env,
  jobject activity,
  jobject out_state
)

Sollte aufgerufen werden, um Daten aus dem OnActivitySaveInstanceState-Wert Ihrer Java-Aktivität weiterzuleiten.

Nur für die Unterstützung von Android 2.3.x erforderlich.

OnActivityStarted

void gpg::AndroidSupport::OnActivityStarted(
  JNIEnv *env,
  jobject activity
)

Sollte aufgerufen werden, um Daten aus OnActivityStarted Ihrer Java-Aktivität weiterzuleiten.

Nur für die Unterstützung von Android 2.3.x erforderlich.

OnActivityStopped

void gpg::AndroidSupport::OnActivityStopped(
  JNIEnv *env,
  jobject activity
)

Sollte aufgerufen werden, um Daten aus OnActivityStopped Ihrer Java-Aktivität weiterzuleiten.

Nur für die Unterstützung von Android 2.3.x erforderlich.