diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-09-24 16:54:38 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-09-24 17:12:18 +0200 |
commit | dfefa2f6dc303cd967a9b5544df874b69d8b6184 (patch) | |
tree | c2411893eab4f43541a3f25dce77c96b2b7a5d2b /src/frontends | |
parent | 2e2feffb6701e9e9f100fa57185dee47f9c25b5b (diff) | |
download | strongswan-dfefa2f6dc303cd967a9b5544df874b69d8b6184.tar.bz2 strongswan-dfefa2f6dc303cd967a9b5544df874b69d8b6184.tar.xz |
android: Added a global variable to check the current SDK version
Diffstat (limited to 'src/frontends')
-rw-r--r-- | src/frontends/android/jni/libandroidbridge/android_jni.c | 9 | ||||
-rw-r--r-- | src/frontends/android/jni/libandroidbridge/android_jni.h | 18 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.c b/src/frontends/android/jni/libandroidbridge/android_jni.c index e7cb14fb7..7ab9a24bd 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 943774e82..b89fd3ad5 100644 --- a/src/frontends/android/jni/libandroidbridge/android_jni.h +++ b/src/frontends/android/jni/libandroidbridge/android_jni.h @@ -46,6 +46,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 * * As local JNI references are not freed until the thread detaches |