From: Tobias Brunner Date: Mon, 24 Sep 2012 14:54:38 +0000 (+0200) Subject: android: Added a global variable to check the current SDK version X-Git-Tag: 5.0.1~45 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dfefa2f6dc303cd967a9b5544df874b69d8b6184;p=thirdparty%2Fstrongswan.git android: Added a global variable to check the current SDK version --- diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.c b/src/frontends/android/jni/libandroidbridge/android_jni.c index e7cb14fb78..7ab9a24bd6 100644 --- a/src/frontends/android/jni/libandroidbridge/android_jni.c +++ b/src/frontends/android/jni/libandroidbridge/android_jni.c @@ -27,6 +27,7 @@ static JavaVM *android_jvm; jclass *android_charonvpnservice_class; jclass *android_charonvpnservice_builder_class; +android_sdk_version_t android_sdk_version; /** * Thread-local variable. Only used because of the destructor @@ -75,7 +76,9 @@ void androidjni_detach_thread() */ jint JNI_OnLoad(JavaVM *vm, void *reserved) { - JNIEnv *env; + JNIEnv *env; + jclass jversion; + jfieldID jsdk_int; android_jvm = vm; @@ -93,6 +96,10 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) (*env)->NewGlobalRef(env, (*env)->FindClass(env, JNI_PACKAGE_STRING "/CharonVpnService$BuilderAdapter")); + jversion = (*env)->FindClass(env, "android/os/Build$VERSION"); + jsdk_int = (*env)->GetStaticFieldID(env, jversion, "SDK_INT", "I"); + android_sdk_version = (*env)->GetStaticIntField(env, jversion, jsdk_int); + return JNI_VERSION_1_6; } diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h index 943774e823..b89fd3ad5e 100644 --- a/src/frontends/android/jni/libandroidbridge/android_jni.h +++ b/src/frontends/android/jni/libandroidbridge/android_jni.h @@ -45,6 +45,24 @@ extern jclass *android_charonvpnservice_class; extern jclass *android_charonvpnservice_builder_class; +/** + * Currently known (supported) SDK versions + * + * see android.os.Build.VERSION_CODES for definitions + */ +typedef enum { + ANDROID_ICE_CREAM_SANDWICH = 14, + ANDROID_ICE_CREAM_SANDWICH_MR1 = 15, + ANDROID_JELLY_BEAN = 16, +} android_sdk_version_t; + +/** + * The current SDK version of the Android framework + * + * see android.os.Build.VERSION.SDK_INT + */ +extern android_sdk_version_t android_sdk_version; + /** * Attach the current thread to the JVM *