瀏覽代碼

extending jni utils

dmuratshin 9 年之前
父節點
當前提交
644ca27a58

+ 7 - 0
oxygine/SDL/android/lib/src/org/oxygine/lib/Utils.java

@@ -6,6 +6,7 @@ import android.content.Intent;
 import android.net.ConnectivityManager;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.net.NetworkInfo;
 import android.net.Uri;
 import android.net.Uri;
+import android.provider.Settings;
 
 
 import java.io.File;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.FileOutputStream;
@@ -27,6 +28,12 @@ public class Utils {
         return _context.getPackageName();
         return _context.getPackageName();
     }
     }
 
 
+    public static String getProperty(String prop) {
+    	if (prop == "ANDROID_ID")
+    		return Settings.Secure.ANDROID_ID;
+        return "";
+    }
+
     public static boolean isNetworkAvailable() {
     public static boolean isNetworkAvailable() {
         if (_context == null)
         if (_context == null)
             return false;
             return false;

+ 14 - 0
oxygine/src/core/android/jniUtils.cpp

@@ -12,6 +12,7 @@ jclass _jUtils = 0;
 jmethodID _jUtils_getTimeUTCMS = 0;
 jmethodID _jUtils_getTimeUTCMS = 0;
 jmethodID _jUtils_getLanguage = 0;
 jmethodID _jUtils_getLanguage = 0;
 jmethodID _jUtils_getPackage = 0;
 jmethodID _jUtils_getPackage = 0;
+jmethodID _jUtils_getProperty = 0;
 jmethodID _jUtils_isNetworkAvailable = 0;
 jmethodID _jUtils_isNetworkAvailable = 0;
 jmethodID _jRunnable_run = 0;
 jmethodID _jRunnable_run = 0;
 
 
@@ -52,6 +53,9 @@ namespace oxygine
             _jUtils_getPackage = env->GetStaticMethodID(_jUtils, "getPackage", "()Ljava/lang/String;");
             _jUtils_getPackage = env->GetStaticMethodID(_jUtils, "getPackage", "()Ljava/lang/String;");
             JNI_NOT_NULL(_jUtils_getPackage);
             JNI_NOT_NULL(_jUtils_getPackage);
 
 
+            _jUtils_getProperty = env->GetStaticMethodID(_jUtils, "getProperty", "(Ljava/lang/String;)Ljava/lang/String;");
+            JNI_NOT_NULL(_jUtils_getProperty);            
+
             _jUtils_isNetworkAvailable = env->GetStaticMethodID(_jUtils, "isNetworkAvailable", "()Z");
             _jUtils_isNetworkAvailable = env->GetStaticMethodID(_jUtils, "isNetworkAvailable", "()Z");
             JNI_NOT_NULL(_jUtils_isNetworkAvailable);
             JNI_NOT_NULL(_jUtils_isNetworkAvailable);
 
 
@@ -207,7 +211,17 @@ namespace oxygine
         return r;
         return r;
     }
     }
 
 
+    std::string     jniGetProperty(const std::string &id)
+    { 
+        JNIEnv* env = jniGetEnv();
+        LOCAL_REF_HOLDER(env);
+
+        jstring jarg = env->NewStringUTF(id.c_str());
+        jstring jstr = (jstring)env->CallStaticObjectMethod(_jUtils, _jUtils_getProperty, jarg);
+        
 
 
+        return jniGetString(env, jstr);
+    }
 }
 }
 
 
 static void _init(JNIEnv* env)
 static void _init(JNIEnv* env)

+ 3 - 0
oxygine/src/core/android/jniUtils.h

@@ -25,4 +25,7 @@ namespace oxygine
     void            jniWriteBuffer2InternalStorageFile(const char* path, const char* data, size_t size);
     void            jniWriteBuffer2InternalStorageFile(const char* path, const char* data, size_t size);
 
 
     jobject         jniFindExtension(JNIEnv* env, jclass cl);
     jobject         jniFindExtension(JNIEnv* env, jclass cl);
+
+
+    std::string     jniGetProperty(const std::string &id);
 }
 }