aboutsummaryrefslogtreecommitdiffstats
path: root/src/frontends
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-09-24 16:54:38 +0200
committerTobias Brunner <tobias@strongswan.org>2012-09-24 17:12:18 +0200
commitdfefa2f6dc303cd967a9b5544df874b69d8b6184 (patch)
treec2411893eab4f43541a3f25dce77c96b2b7a5d2b /src/frontends
parent2e2feffb6701e9e9f100fa57185dee47f9c25b5b (diff)
downloadstrongswan-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.c9
-rw-r--r--src/frontends/android/jni/libandroidbridge/android_jni.h18
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