гпг:: AndroidПоддержка

#include <android_support.h>

Функции, обеспечивающие поддержку версий до Android 4.0.

Краткое содержание

Обратные вызовы жизненного цикла Android

Для приложений, предназначенных для устройств Android 2.3 или 3.x (версия API до 14), Play Game Services не имеет возможности автоматически получать обратные вызовы жизненного цикла активности. В этих случаях Play Game Services полагается на владеющее действие, чтобы уведомлять его о событиях жизненного цикла. Любое действие, владеющее объектом 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
Должен вызываться для пересылки данных из OnActivityPaused вашей активности Java.
OnActivityResult (JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
Должен вызываться для пересылки данных из OnActivityResult вашей активности Java.
OnActivityResumed (JNIEnv *env, jobject activity)
void
Должен вызываться для пересылки данных из OnActivityResumed вашей активности 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
)

Должен вызываться для пересылки данных из OnActivityPaused вашей активности 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
)

Должен вызываться для пересылки данных из OnActivityResumed вашей активности Java.

Необходимо только для поддержки Android 2.3.x.

Онактивитисавеинстанцестате

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.