Browse Source

Added a function to get the current Android SDK version at runtime

Sam Lantinga 5 years ago
parent
commit
dce56ab9fa
2 changed files with 15 additions and 0 deletions
  1. 13 0
      src/core/android/SDL_android.c
  2. 2 0
      src/core/android/SDL_android.h

+ 13 - 0
src/core/android/SDL_android.c

@@ -42,6 +42,7 @@
 #include "../../haptic/android/SDL_syshaptic_c.h"
 
 #include <android/log.h>
+#include <sys/system_properties.h>
 #include <pthread.h>
 #include <sys/types.h>
 #include <unistd.h>
@@ -2406,6 +2407,18 @@ void *SDL_AndroidGetActivity(void)
     return (*env)->CallStaticObjectMethod(env, mActivityClass, midGetContext);
 }
 
+int SDL_GetAndroidSDKVersion(void)
+{
+    static int sdk_version;
+    if (!sdk_version) {
+        char sdk[PROP_VALUE_MAX] = {0};
+        if (__system_property_get("ro.build.version.sdk", sdk) != 0) {
+            sdk_version = SDL_atoi(sdk);
+        }
+    }
+    return sdk_version;
+}
+
 SDL_bool SDL_IsAndroidTablet(void)
 {
     JNIEnv *env = Android_JNI_GetEnv();

+ 2 - 0
src/core/android/SDL_android.h

@@ -122,6 +122,8 @@ SDL_bool Android_JNI_SupportsRelativeMouse(void);
 SDL_bool Android_JNI_SetRelativeMouseEnabled(SDL_bool enabled);
 
 
+int SDL_GetAndroidSDKVersion(void);
+
 SDL_bool SDL_IsAndroidTablet(void);
 SDL_bool SDL_IsAndroidTV(void);
 SDL_bool SDL_IsChromebook(void);