gpg::AndroidSupport

#include <android_support.h>

Các hàm cho phép hỗ trợ phiên bản trước Android 4.0.

Tóm tắt

Lệnh gọi lại trong vòng đời Android

Đối với các ứng dụng nhắm mục tiêu đến thiết bị Android 2.3 hoặc 3.x (Phiên bản API trước phiên bản 14), Dịch vụ trò chơi của Play không có cách nào để tự động nhận lệnh gọi lại trong Vòng đời hoạt động. Trong những trường hợp này, Dịch vụ trò chơi của Play dựa vào Hoạt động sở hữu để thông báo về các sự kiện trong vòng đời. Mọi Hoạt động sở hữu đối tượng GameServices đều phải gọi các hàm AndroidSupport::* từ trong hàm callback của riêng chúng trong vòng đời. Các đối số trong các hàm này khớp với đối số do Android cung cấp, vì vậy, bạn không cần phải xử lý thêm.

Đối với ứng dụng nhắm đến Android 4.0 trở lên (Phiên bản API lớn hơn hoặc bằng 14), hầu hết các lệnh gọi hàm này đều không cần thiết. Đối với những ứng dụng như vậy, bạn chỉ phải gọi hàm OnActivityResult.

Mã ví dụ cho trò chơi trước Android 4.0 sử dụng Hoạt động Java

Trong phần Hoạt động Java, vui lòng thêm thông tin sau. Bạn có thể cần hợp nhất mã này với các hàm vòng đời hiện có.

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);
}
Sau đó, trong thư viện gốc, hãy thêm các hàm chuyển tiếp sau.
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);
}

Mã mẫu cho trò chơi trên Android 4.0 trở lên sử dụng Hoạt động Java

Trong phần Hoạt động Java, vui lòng thêm thông tin sau. Bạn có thể cần hợp nhất mã này với các hàm vòng đời hiện có.

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);
}
Sau đó, trong thư viện gốc, hãy thêm các hàm chuyển tiếp sau.
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);
}

Hàm tĩnh công khai

OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ onActivityCreated của hoạt động Java.
OnActivityDestroyed(JNIEnv *env, jobject activity)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityDestroyed của hoạt động Java.
OnActivityPaused(JNIEnv *env, jobject activity)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityPaused của hoạt động Java.
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityResult của hoạt động Java.
OnActivityResumed(JNIEnv *env, jobject activity)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityResumed của hoạt động Java.
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivitySaveInstanceState của hoạt động Java.
OnActivityStarted(JNIEnv *env, jobject activity)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ hoạt động OnActivityStarted của hoạt động Java.
OnActivityStopped(JNIEnv *env, jobject activity)
void
Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityStop của hoạt động Java.

Hàm tĩnh công khai

OnActivityCreated

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

Sẽ được gọi để chuyển tiếp dữ liệu từ onActivityCreated của hoạt động Java.

Chỉ cần thiết để hỗ trợ Android 2.3.x.

OnActivityDestroyed

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

Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityDestroyed của hoạt động Java.

Chỉ cần thiết để hỗ trợ Android 2.3.x.

OnActivityPaused

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

Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityPaused của hoạt động Java.

Chỉ cần thiết để hỗ trợ Android 2.3.x.

OnActivityResult

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

Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityResult của hoạt động Java.

OnActivityResumed

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

Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityResumed của hoạt động Java.

Chỉ cần thiết để hỗ trợ Android 2.3.x.

OnActivitySaveInstanceState

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

Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivitySaveInstanceState của hoạt động Java.

Chỉ cần thiết để hỗ trợ Android 2.3.x.

OnActivityStarted

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

Sẽ được gọi để chuyển tiếp dữ liệu từ hoạt động OnActivityStarted của hoạt động Java.

Chỉ cần thiết để hỗ trợ Android 2.3.x.

OnActivityStopped

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

Sẽ được gọi để chuyển tiếp dữ liệu từ OnActivityStop của hoạt động Java.

Chỉ cần thiết để hỗ trợ Android 2.3.x.