gpg::AndroidSupport

#include <android_support.h>

ฟังก์ชันที่เปิดใช้การสนับสนุนก่อน Android 4.0

สรุป

การเรียกกลับสำหรับวงจรของ Android

สำหรับแอปที่กำหนดเป้าหมายเป็นอุปกรณ์ Android 2.3 หรือ 3.x (เวอร์ชัน API ก่อนหน้า 14) บริการเกมของ Play จะไม่มีวิธีรับการเรียกกลับสำหรับวงจรกิจกรรมโดยอัตโนมัติ ในกรณีเหล่านี้ บริการเกมของ Play จะใช้กิจกรรมที่เป็นเจ้าของเพื่อแจ้งเตือนเหตุการณ์ในวงจร กิจกรรมใดๆ ที่เป็นเจ้าของออบเจ็กต์ GameServices ควรเรียกใช้ฟังก์ชัน AndroidSupport::* จากภายในฟังก์ชันเรียกกลับของวงจร อาร์กิวเมนต์ในฟังก์ชันเหล่านี้ตรงกับอาร์กิวเมนต์ที่ Android ทำให้จึงไม่จำเป็นต้องประมวลผลเพิ่มเติม

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 4.0 ขึ้นไป (เวอร์ชัน API สูงกว่าหรือเท่ากับ 14) ไม่จำเป็นต้องใช้การเรียกใช้ฟังก์ชันเหล่านี้ส่วนใหญ่ สำหรับแอปดังกล่าว จะต้องเรียกใช้ฟังก์ชัน OnActivityResult เท่านั้น

ตัวอย่างโค้ดสำหรับเกมก่อน Android 4.0 ที่ใช้กิจกรรม Java

ในกิจกรรม Java โปรดเพิ่มข้อมูลต่อไปนี้ คุณอาจต้องผสานโค้ดนี้กับฟังก์ชันวงจรที่มีอยู่

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);
}
จากนั้นเพิ่มฟังก์ชันการส่งต่อต่อไปนี้ในไลบรารีเนทีฟ
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);
}

ตัวอย่างโค้ดสำหรับเกม Android 4.0 ขึ้นไปที่ใช้กิจกรรม Java

ในกิจกรรม Java โปรดเพิ่มข้อมูลต่อไปนี้ คุณอาจต้องผสานโค้ดนี้กับฟังก์ชันวงจรที่มีอยู่

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);
}
จากนั้นเพิ่มฟังก์ชันการส่งต่อต่อไปนี้ในไลบรารีเนทีฟ
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);
}

ฟังก์ชันแบบคงที่แบบสาธารณะ

OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
void
ควรเรียกใช้ให้ส่งต่อข้อมูลจาก onActivityCreated ของกิจกรรม Java
OnActivityDestroyed(JNIEnv *env, jobject activity)
void
ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityDestroyed ของกิจกรรม Java
OnActivityPaused(JNIEnv *env, jobject activity)
void
ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityPause ของกิจกรรม Java ของคุณ
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
ควรถูกเรียกให้ส่งต่อข้อมูลจาก OnActivityResult ของกิจกรรม Java
OnActivityResumed(JNIEnv *env, jobject activity)
void
ควรถูกเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityActivityd ของกิจกรรม Java
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
void
ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivitySaveInstanceState ของกิจกรรม Java ของคุณ
OnActivityStarted(JNIEnv *env, jobject activity)
void
ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityStarted ของกิจกรรม Java
OnActivityStopped(JNIEnv *env, jobject activity)
void
ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityStopped ของกิจกรรม Java

ฟังก์ชันแบบคงที่แบบสาธารณะ

OnActivityCreated

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

ควรเรียกใช้ให้ส่งต่อข้อมูลจาก onActivityCreated ของกิจกรรม Java

จำเป็นเฉพาะสำหรับการสนับสนุน Android 2.3.x

OnActivityDestroyed

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

ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityDestroyed ของกิจกรรม Java

จำเป็นเฉพาะสำหรับการสนับสนุน Android 2.3.x

OnActivityPaused

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

ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityPause ของกิจกรรม Java ของคุณ

จำเป็นเฉพาะสำหรับการสนับสนุน Android 2.3.x

OnActivityResult

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

ควรถูกเรียกให้ส่งต่อข้อมูลจาก OnActivityResult ของกิจกรรม Java

OnActivityResumed

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

ควรถูกเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityActivityd ของกิจกรรม Java

จำเป็นเฉพาะสำหรับการสนับสนุน Android 2.3.x

OnActivitySaveInstanceState

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

ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivitySaveInstanceState ของกิจกรรม Java ของคุณ

จำเป็นเฉพาะสำหรับการสนับสนุน Android 2.3.x

OnActivityStarted

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

ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityStarted ของกิจกรรม Java

จำเป็นเฉพาะสำหรับการสนับสนุน Android 2.3.x

OnActivityStopped

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

ควรเรียกใช้ให้ส่งต่อข้อมูลจาก OnActivityStopped ของกิจกรรม Java

จำเป็นเฉพาะสำหรับการสนับสนุน Android 2.3.x