gpg::AndroidSupport

#include <android_support.h>

Fonctions compatibles avec une version antérieure à Android 4.0.

Résumé

Rappels du cycle de vie Android

Pour les applications qui ciblent les appareils Android 2.3 ou 3.x (version de l'API antérieure à 14), les services de jeux Play ne peuvent pas recevoir automatiquement de rappels du cycle de vie de l'activité. Dans ce cas, les services de jeux Play s'appuient sur l'activité propriétaire pour les informer des événements de cycle de vie. Toute activité possédant un objet GameServices doit appeler les fonctions AndroidSupport::* à partir de leurs propres fonctions de rappel de cycle de vie. Les arguments de ces fonctions correspondent à ceux fournis par Android. Aucun traitement supplémentaire n'est donc nécessaire.

Pour les applications qui ciblent Android 4.0+ (version de l'API supérieure ou égale à 14), la plupart de ces appels de fonction sont inutiles. Pour ces applications, seule la fonction OnActivityResult doit être appelée.

Exemple de code pour un jeu antérieur à Android 4.0 utilisant une activité Java

Dans votre activité Java, veuillez ajouter ce qui suit. Vous devrez peut-être fusionner ce code avec vos fonctions de cycle de vie existantes.

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);
}
Ensuite, dans votre bibliothèque native, ajoutez les fonctions de transfert suivantes.
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);
}

Exemple de code pour un jeu Android 4.0 ou version ultérieure utilisant une activité Java

Dans votre activité Java, veuillez ajouter ce qui suit. Vous devrez peut-être fusionner ce code avec vos fonctions de cycle de vie existantes.

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);
}
Ensuite, dans votre bibliothèque native, ajoutez les fonctions de transfert suivantes.
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);
}

Fonctions statiques publiques

OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
void
Doit être appelé pour transférer les données de la méthode onActivityCreated de votre activité Java.
OnActivityDestroyed(JNIEnv *env, jobject activity)
void
Doit être appelé pour transférer les données de la commande OnActivityDestroyed de votre activité Java.
OnActivityPaused(JNIEnv *env, jobject activity)
void
Doit être appelé pour transférer les données de la méthode OnActivityPause de votre activité Java.
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
Doit être appelé pour transférer des données à partir de l'élément OnActivityResult de votre activité Java.
OnActivityResumed(JNIEnv *env, jobject activity)
void
Doit être appelé pour transférer les données à partir de la méthode OnActivityResumed de votre activité Java.
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
void
Doit être appelé pour transférer les données de l'objet OnActivitySaveInstanceState de votre activité Java.
OnActivityStarted(JNIEnv *env, jobject activity)
void
Doit être appelé pour transférer les données à partir de la méthode OnActivityStarted de votre activité Java.
OnActivityStopped(JNIEnv *env, jobject activity)
void
Doit être appelé pour transférer les données à partir de l'élément OnActivitySlined de votre activité Java.

Fonctions statiques publiques

OnActivityCreated

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

Doit être appelé pour transférer les données de la méthode onActivityCreated de votre activité Java.

Nécessaire uniquement pour la prise en charge d'Android 2.3.x.

OnActivityDestroyed

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

Doit être appelé pour transférer les données de la commande OnActivityDestroyed de votre activité Java.

Nécessaire uniquement pour la prise en charge d'Android 2.3.x.

OnActivityPaused

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

Doit être appelé pour transférer les données de la méthode OnActivityPause de votre activité Java.

Nécessaire uniquement pour la prise en charge d'Android 2.3.x.

OnActivityResult

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

Doit être appelé pour transférer des données à partir de l'élément OnActivityResult de votre activité Java.

OnActivityResumed

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

Doit être appelé pour transférer les données à partir de la méthode OnActivityResumed de votre activité Java.

Nécessaire uniquement pour la prise en charge d'Android 2.3.x.

OnActivitySaveInstanceState

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

Doit être appelé pour transférer les données de l'objet OnActivitySaveInstanceState de votre activité Java.

Nécessaire uniquement pour la prise en charge d'Android 2.3.x.

OnActivityStarted

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

Doit être appelé pour transférer les données à partir de la méthode OnActivityStarted de votre activité Java.

Nécessaire uniquement pour la prise en charge d'Android 2.3.x.

OnActivityStopped

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

Doit être appelé pour transférer les données à partir de l'élément OnActivitySlined de votre activité Java.

Nécessaire uniquement pour la prise en charge d'Android 2.3.x.