gpg::AndroidSupport

#include <android_support.h>

Funzioni che consentono il supporto delle versioni precedenti ad Android 4.0.

Riepilogo

Callback del ciclo di vita di Android

Per le app destinate a dispositivi Android 2.3 o 3.x (versione API precedente alla 14), i servizi per i giochi di Play non possono ricevere automaticamente i callback del ciclo di vita delle attività. In questi casi, i servizi per i giochi di Play si basano sull'attività proprietaria per notificare gli eventi del ciclo di vita. Qualsiasi attività che possiede un oggetto GameServices deve chiamare le funzioni AndroidSupport::* dall'interno delle proprie funzioni di callback del ciclo di vita. Gli argomenti in queste funzioni corrispondono a quelli forniti da Android, quindi non è necessaria alcuna elaborazione aggiuntiva.

Per le app destinate ad Android 4.0 e versioni successive (versione API superiore o uguale a 14), la maggior parte di queste chiamate di funzione non è necessaria. Per queste app deve essere chiamata solo la funzione OnActivityResult.

Codice di esempio per un gioco precedente ad Android 4.0 che utilizza un'Attività Java

Nell'Attività di Java, aggiungi quanto segue. Potresti dover unire questo codice alle funzioni del ciclo di vita esistenti.

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);
}
Quindi, aggiungi le seguenti funzioni di inoltro nella libreria nativa.
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);
}

Codice di esempio per un gioco Android 4.0 o versioni successive che utilizza un'Attività Java

Nell'Attività di Java, aggiungi quanto segue. Potresti dover unire questo codice alle funzioni del ciclo di vita esistenti.

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);
}
Quindi, aggiungi le seguenti funzioni di inoltro nella libreria nativa.
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);
}

Funzioni statiche pubbliche

OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
void
Deve essere chiamato per inoltrare i dati da onActivityCreated della tua attività Java.
OnActivityDestroyed(JNIEnv *env, jobject activity)
void
Deve essere chiamato per inoltrare i dati dall'elemento OnActivityDestroyed della tua attività Java.
OnActivityPaused(JNIEnv *env, jobject activity)
void
Dovrebbe essere chiamato per inoltrare i dati dalla sessione OnActivityActivity della tua attività Java.
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
Deve essere chiamato per inoltrare i dati dall'OnActivityResult della tua attività Java.
OnActivityResumed(JNIEnv *env, jobject activity)
void
Deve essere chiamato per inoltrare i dati dal valore OnActivityRiprendid della tua attività Java.
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
void
Deve essere chiamato per inoltrare i dati dal valore OnActivitySaveInstanceState dell'attività Java.
OnActivityStarted(JNIEnv *env, jobject activity)
void
Deve essere chiamato per inoltrare i dati da OnActivityStarted della tua attività Java.
OnActivityStopped(JNIEnv *env, jobject activity)
void
Deve essere chiamato per inoltrare i dati dall'OnActivitySTo della tua attività Java.

Funzioni statiche pubbliche

OnActivityCreated

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

Deve essere chiamato per inoltrare i dati da onActivityCreated della tua attività Java.

Necessario solo per l'assistenza Android 2.3.x.

OnActivityDestroyed

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

Deve essere chiamato per inoltrare i dati dall'elemento OnActivityDestroyed della tua attività Java.

Necessario solo per l'assistenza Android 2.3.x.

OnActivityPaused

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

Deve essere chiamato per inoltrare i dati dalla sessione OnActivityActivity della tua attività Java.

Necessario solo per l'assistenza Android 2.3.x.

OnActivityResult

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

Deve essere chiamato per inoltrare i dati dall'OnActivityResult della tua attività Java.

OnActivityResumed

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

Deve essere chiamato per inoltrare i dati dal valore OnActivityRiprendid della tua attività Java.

Necessario solo per l'assistenza Android 2.3.x.

OnActivitySaveInstanceState

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

Deve essere chiamato per inoltrare i dati dal valore OnActivitySaveInstanceState dell'attività Java.

Necessario solo per l'assistenza Android 2.3.x.

OnActivityStarted

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

Deve essere chiamato per inoltrare i dati da OnActivityStarted della tua attività Java.

Necessario solo per l'assistenza Android 2.3.x.

OnActivityStopped

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

Deve essere chiamato per inoltrare i dati dall'OnActivitySTo della tua attività Java.

Necessario solo per l'assistenza Android 2.3.x.