gpg:: پشتیبانی اندروید

#include <android_support.h>

عملکردهایی که پشتیبانی قبل از اندروید 4.0 را فعال می کنند.

خلاصه

تماس های چرخه زندگی اندروید

برای برنامه‌هایی که دستگاه‌های Android 2.3 یا 3.x را هدف قرار می‌دهند (نسخه API قبل از ۱۴)، «خدمات بازی Play» راهی برای دریافت خودکار تماس‌های چرخه حیات Activity ندارد. در این موارد، Play Game Services برای اطلاع رسانی رویدادهای چرخه حیات به فعالیت مالک متکی است. هر فعالیتی که دارای یک شی GameServices است باید توابع AndroidSupport ::* را از درون توابع بازگشت به تماس چرخه حیات خود فراخوانی کند. آرگومان های موجود در این توابع با آرگومان های ارائه شده توسط Android مطابقت دارند، بنابراین نیازی به پردازش اضافی نیست.

برای برنامه‌هایی که اندروید 4.0 و بالاتر (نسخه API بزرگتر یا مساوی 14) را هدف قرار می‌دهند، بیشتر این فراخوانی‌ها غیر ضروری هستند. برای چنین برنامه هایی فقط تابع OnActivityResult باید فراخوانی شود.

کد مثال برای یک بازی قبل از اندروید 4.0 با استفاده از یک فعالیت جاوا

در فعالیت جاوا خود، لطفا موارد زیر را اضافه کنید. ممکن است لازم باشد این کد را با توابع چرخه حیات موجود خود ادغام کنید.

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+ با استفاده از یک فعالیت جاوا

در فعالیت جاوا خود، لطفا موارد زیر را اضافه کنید. ممکن است لازم باشد این کد را با توابع چرخه حیات موجود خود ادغام کنید.

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 ارسال شود.
OnActivityDestroyed (JNIEnv *env, jobject activity)
void
باید برای ارسال داده ها از OnActivityDestroyed در فعالیت جاوا شما فراخوانی شود.
OnActivityPaused (JNIEnv *env, jobject activity)
void
باید برای ارسال داده ها از OnActivityPaused فعالیت جاوا شما فراخوانی شود.
OnActivityResult (JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
باید برای ارسال داده ها از OnActivityResult فعالیت جاوا شما فراخوانی شود.
OnActivityResumed (JNIEnv *env, jobject activity)
void
باید برای ارسال داده ها از OnActivityResumed فعالیت جاوا شما فراخوانی شود.
OnActivitySaveInstanceState (JNIEnv *env, jobject activity, jobject out_state)
void
باید برای ارسال داده ها از OnActivitySaveInstanceState فعالیت جاوا شما فراخوانی شود.
OnActivityStarted (JNIEnv *env, jobject activity)
void
باید برای ارسال داده ها از OnActivityStarted فعالیت جاوا شما فراخوانی شود.
OnActivityStopped (JNIEnv *env, jobject activity)
void
باید برای ارسال داده ها از OnActivityStopped در فعالیت جاوا شما فراخوانی شود.

توابع استاتیک عمومی

OnActivityCreated

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

باید فراخوانی شود تا داده‌های مربوط به فعالیت جاوای شما در onActivityCreated ارسال شود.

فقط برای پشتیبانی از Android 2.3.x لازم است.

OnActivityDestroyed

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

باید برای ارسال داده ها از OnActivityDestroyed در فعالیت جاوا شما فراخوانی شود.

فقط برای پشتیبانی از Android 2.3.x لازم است.

OnActivityPaused

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

باید برای ارسال داده ها از OnActivityPaused فعالیت جاوا شما فراخوانی شود.

فقط برای پشتیبانی از Android 2.3.x لازم است.

OnActivityResult

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

باید برای ارسال داده ها از OnActivityResult فعالیت جاوا شما فراخوانی شود.

OnActivityResumed

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

باید برای ارسال داده ها از OnActivityResumed فعالیت جاوا شما فراخوانی شود.

فقط برای پشتیبانی از Android 2.3.x لازم است.

OnActivitySaveInstanceState

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

باید برای ارسال داده ها از OnActivitySaveInstanceState فعالیت جاوا شما فراخوانی شود.

فقط برای پشتیبانی از Android 2.3.x لازم است.

OnActivityStarted

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

باید برای ارسال داده ها از OnActivityStarted فعالیت جاوا شما فراخوانی شود.

فقط برای پشتیبانی از Android 2.3.x لازم است.

OnActivityStopped

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

باید برای ارسال داده ها از OnActivityStopped در فعالیت جاوا شما فراخوانی شود.

فقط برای پشتیبانی از Android 2.3.x لازم است.