gpg::AndroidSupport
#include <android_support.h>
Functions which enable pre- Android 4.0 support.
Summary
Android Lifecycle Callbacks
For apps which target Android 2.3 or 3.x devices (API Version prior to 14), Play Game Services has no way to automatically receive Activity lifecycle callbacks. In these cases, Play Game Services relies on the owning Activity to notify it of lifecycle events. Any Activity which owns a GameServices object should call the AndroidSupport::* functions from within their own lifecycle callback functions. The arguments in these functions match those provided by Android, so no additional processing is necessary.
For apps which target android 4.0+ (API Version greater than or equal to 14), most of these function calls are unnecessary. For such apps only the OnActivityResult function must be called.
Example code for a pre- Android 4.0 game using a Java Activity
In your Java Activity, please add the following. You may need to merge this code with your existing lifecycle functions. importandroid.app.Activity;
importandroid.content.Intent;
publicclassYourActivityextendsActivity{
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
nativeOnActivityCreated(this,savedInstanceState);
}
protectedvoidonDestroy(){
super.onDestroy();
nativeOnActivityDestroyed(this);
}
protectedvoidonPause(){
super.onPause();
nativeOnActivityPaused(this);
}
protectedvoidonResume(){
super.onResume();
nativeOnActivityResumed(this);
}
protectedvoidonStart(){
super.onStart();
nativeOnActivityStarted(this);
}
protectedvoidonStop(){
super.onStop();
nativeOnActivityStopped(this);
}
protectedvoidonSaveInstanceState(BundleoutState){
super.onSaveInstanceState(outState);
nativeOnActivitySaveInstanceState(this,outState);
}
protectedvoidonActivityResult(intrequestCode,
intresultCode,
Intentdata){
super.onActivityResult(requestCode,resultCode,data);
nativeOnActivityResult(this,requestCode,resultCode,data);
}
// Implemented in C++.
privatestaticnativevoidnativeOnActivityCreated(
Activityactivity,BundlesavedInstanceState);
privatestaticnativevoidnativeOnActivityDestroyed(Activityactivity);
privatestaticnativevoidnativeOnActivityPaused(Activityactivity);
privatestaticnativevoidnativeOnActivityResumed(Activityactivity);
privatestaticnativevoidnativeOnActivitySaveInstanceState(
Activityactivity,
BundleoutState);
privatestaticnativevoidnativeOnActivityStarted(Activityactivity);
privatestaticnativevoidnativeOnActivityStopped(Activityactivity);
privatestaticnativevoidnativeOnActivityResult(
Activityactivity,
intrequestCode,
intresultCode,
Intentdata);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityCreated(
JNIEnv*env,
jobjectthiz,
jobjectactivity,
jobjectsaved_instance_state){
gpg::AndroidSupport::OnActivityCreated(env,
activity,
saved_instance_state);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityDestroyed(
JNIEnv*env,jobjectthiz,jobjectactivity){
gpg::AndroidSupport::OnActivityDestroyed(env,activity);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityPaused(
JNIEnv*env,jobjectthiz,jobjectactivity){
gpg::AndroidSupport::OnActivityPaused(env,activity);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityResumed(
JNIEnv*env,jobjectthiz,jobjectactivity){
gpg::AndroidSupport::OnActivityResumed(env,activity);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivitySaveInstanceState(
JNIEnv*env,jobjectthiz,jobjectactivity,jobjectout_state){
gpg::AndroidSupport::OnActivitySaveInstanceState(env,activity,out_state);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityStarted(
JNIEnv*env,jobjectthiz,jobjectactivity){
gpg::AndroidSupport::OnActivityStarted(env,activity);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityStopped(
JNIEnv*env,jobjectthiz,jobjectactivity){
gpg::AndroidSupport::OnActivityStopped(env,activity);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityResult(
JNIEnv*env,
jobjectthiz,
jobjectactivity,
jintrequest_code,
jintresult_code,
jobjectdata){
gpg::AndroidSupport::OnActivityResult(
env,activity,request_code,result_code,data);
}
Example code for an Android 4.0+ game using a Java Activity
In your Java Activity, please add the following. You may need to merge this code with your existing lifecycle functions. publicclassYourActivityextendsActivity{
protectedvoidonActivityResult(intrequestCode,
intresultCode,
Intentdata){
super.onActivityResult(requestCode,resultCode,data);
nativeOnActivityResult(this,requestCode,resultCode,data);
}
// Implemented in C++.
privatestaticnativevoidnativeOnActivityResult(
Activityactivity,
intrequestCode,
intresultCode,
Intentdata);
}
voidJava_com_example_yourapp_YourActivity_nativeOnActivityResult(
JNIEnv*env,
jobjectthiz,
jobjectactivity,
jintrequest_code,
jintresult_code,
jobjectdata){
gpg::AndroidSupport::OnActivityResult(
env,activity,request_code,result_code,data);
}
Public static functions |
|
|---|---|
OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
|
void
Should be called to forward data from your Java activity's onActivityCreated.
|
OnActivityDestroyed(JNIEnv *env, jobject activity)
|
void
Should be called to forward data from your Java activity's OnActivityDestroyed.
|
OnActivityPaused(JNIEnv *env, jobject activity)
|
void
Should be called to forward data from your Java activity's OnActivityPaused.
|
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
|
void
Should be called to forward data from your Java activity's OnActivityResult.
|
OnActivityResumed(JNIEnv *env, jobject activity)
|
void
Should be called to forward data from your Java activity's OnActivityResumed.
|
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
|
void
Should be called to forward data from your Java activity's OnActivitySaveInstanceState.
|
OnActivityStarted(JNIEnv *env, jobject activity)
|
void
Should be called to forward data from your Java activity's OnActivityStarted.
|
OnActivityStopped(JNIEnv *env, jobject activity)
|
void
Should be called to forward data from your Java activity's OnActivityStopped.
|
Public static functions
OnActivityCreated
voidgpg::AndroidSupport::OnActivityCreated( JNIEnv*env, jobjectactivity, jobjectsaved_instance_state )
Should be called to forward data from your Java activity's onActivityCreated.
Only necessary for Android 2.3.x support.
OnActivityDestroyed
voidgpg::AndroidSupport::OnActivityDestroyed( JNIEnv*env, jobjectactivity )
Should be called to forward data from your Java activity's OnActivityDestroyed.
Only necessary for Android 2.3.x support.
OnActivityPaused
voidgpg::AndroidSupport::OnActivityPaused( JNIEnv*env, jobjectactivity )
Should be called to forward data from your Java activity's OnActivityPaused.
Only necessary for Android 2.3.x support.
OnActivityResult
voidgpg::AndroidSupport::OnActivityResult( JNIEnv*env, jobjectactivity, jintrequest_code, jintresult_code, jobjectresult )
Should be called to forward data from your Java activity's OnActivityResult.
OnActivityResumed
voidgpg::AndroidSupport::OnActivityResumed( JNIEnv*env, jobjectactivity )
Should be called to forward data from your Java activity's OnActivityResumed.
Only necessary for Android 2.3.x support.
OnActivitySaveInstanceState
voidgpg::AndroidSupport::OnActivitySaveInstanceState( JNIEnv*env, jobjectactivity, jobjectout_state )
Should be called to forward data from your Java activity's OnActivitySaveInstanceState.
Only necessary for Android 2.3.x support.
OnActivityStarted
voidgpg::AndroidSupport::OnActivityStarted( JNIEnv*env, jobjectactivity )
Should be called to forward data from your Java activity's OnActivityStarted.
Only necessary for Android 2.3.x support.
OnActivityStopped
voidgpg::AndroidSupport::OnActivityStopped( JNIEnv*env, jobjectactivity )
Should be called to forward data from your Java activity's OnActivityStopped.
Only necessary for Android 2.3.x support.