gpg::AndroidSupport

#include <android_support.h>

Fungsi yang memungkinkan dukungan sebelum Android 4.0.

Ringkasan

Callback Siklus Proses Android

Untuk aplikasi yang menargetkan perangkat Android 2.3 atau 3.x (Versi API sebelum 14), Layanan game Play tidak memiliki cara untuk menerima callback siklus proses Aktivitas secara otomatis. Dalam hal ini, Layanan game Play bergantung pada Aktivitas memiliki untuk memberinya notifikasi tentang peristiwa siklus proses. Setiap Aktivitas yang memiliki objek GameServices harus memanggil fungsi AndroidSupport::* dari dalam fungsi callback siklus prosesnya sendiri. Argumen dalam fungsi ini cocok dengan yang disediakan oleh Android, jadi tidak diperlukan pemrosesan tambahan.

Untuk aplikasi yang menargetkan Android 4.0+ (Versi API lebih besar dari atau sama dengan 14), sebagian besar panggilan fungsi ini tidak diperlukan. Untuk aplikasi semacam itu, hanya fungsi OnActivityResult yang harus dipanggil.

Kode contoh untuk game pra-Android 4.0 yang menggunakan Java Activity

Di Aktivitas Java, tambahkan yang berikut. Anda mungkin perlu menggabungkan kode ini dengan fungsi siklus proses yang ada.

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);
}
Kemudian, di library native Anda, tambahkan fungsi penerusan berikut.
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);
}

Kode contoh untuk game Android 4.0+ menggunakan Aktivitas Java

Di Aktivitas Java, tambahkan yang berikut. Anda mungkin perlu menggabungkan kode ini dengan fungsi siklus proses yang ada.

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);
}
Kemudian, di library native Anda, tambahkan fungsi penerusan berikut.
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);
}

Fungsi statis publik

OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
void
Harus dipanggil untuk meneruskan data dari onActivityCreated aktivitas Java Anda.
OnActivityDestroyed(JNIEnv *env, jobject activity)
void
Harus dipanggil untuk meneruskan data dari OnActivityDestroyed aktivitas Java Anda.
OnActivityPaused(JNIEnv *env, jobject activity)
void
Harus dipanggil untuk meneruskan data dari OnActivityDijeda aktivitas Java Anda.
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
Harus dipanggil untuk meneruskan data dari OnActivityResult aktivitas Java Anda.
OnActivityResumed(JNIEnv *env, jobject activity)
void
Harus dipanggil untuk meneruskan data dari OnActivityResumed aktivitas Java Anda.
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
void
Harus dipanggil untuk meneruskan data dari OnActivitySaveInstanceState aktivitas Java Anda.
OnActivityStarted(JNIEnv *env, jobject activity)
void
Harus dipanggil untuk meneruskan data dari OnActivityStarted aktivitas Java Anda.
OnActivityStopped(JNIEnv *env, jobject activity)
void
Harus dipanggil untuk meneruskan data dari OnActivityStopped aktivitas Java Anda.

Fungsi statis publik

OnActivityCreated

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

Harus dipanggil untuk meneruskan data dari onActivityCreated aktivitas Java Anda.

Hanya diperlukan untuk dukungan Android 2.3.x.

OnActivityDestroyed

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

Harus dipanggil untuk meneruskan data dari OnActivityDestroyed aktivitas Java Anda.

Hanya diperlukan untuk dukungan Android 2.3.x.

OnActivityPaused

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

Harus dipanggil untuk meneruskan data dari OnActivityDijeda aktivitas Java Anda.

Hanya diperlukan untuk dukungan Android 2.3.x.

OnActivityResult

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

Harus dipanggil untuk meneruskan data dari OnActivityResult aktivitas Java Anda.

OnActivityResumed

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

Harus dipanggil untuk meneruskan data dari OnActivityResumed aktivitas Java Anda.

Hanya diperlukan untuk dukungan Android 2.3.x.

OnActivitySaveInstanceState

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

Harus dipanggil untuk meneruskan data dari OnActivitySaveInstanceState aktivitas Java Anda.

Hanya diperlukan untuk dukungan Android 2.3.x.

OnActivityStarted

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

Harus dipanggil untuk meneruskan data dari OnActivityStarted aktivitas Java Anda.

Hanya diperlukan untuk dukungan Android 2.3.x.

OnActivityStopped

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

Harus dipanggil untuk meneruskan data dari OnActivityStopped aktivitas Java Anda.

Hanya diperlukan untuk dukungan Android 2.3.x.