java - Android :shared preference in jni -


in android application in need access shared memory between 2 application ,i knew android kernel not linux kernel implement shared memory concept ,so have choosen shared preference in android need implement via jni not in java part have tried create shared preference in jni cant code

jniexport jlong jnicall java_com_sharedpref1_test_savevalue   (jnienv *env, jobject ctx, jstring store, jstring key, jlong value);            jobject shared_preferences = (*env)->callobjectmethod(env, ctx, (*env)->getmethodid(env (*env)->findclass(env, "android/content/context"), "getsharedpreferences", "(l/java/lang/string;i)landroid/content/sharedpreferences;"),                     jstore,                     1);         jobject preferences_editor = (*env)->callobjectmethod(env, shared_preferences, (*env)->getmethodid(env,                 (*env)->findclass(env, "android/content/sharedpreferences"), "editor", "()landroid/content/sharedpreferences$editor;"));          (*env)->callobjectmethod(env, preferences_editor, (*env)->getmethodid(env,                  (*env)->findclass(env, "android/content/sharedpreferences/editor"), "putlong", "(ljava/lang/string;j)landroid/content/sharedpreferences$editor;"),                jkey,                     value);       } 

can know how done shared preference in jni on android.

there's possibly error in code. "ctx" not android context. instead, java "this" of calling java class. unless calling class inherits context, should pass context instance additional parameter.

besides this, should split , possibly error check function calls make more readable , errors easier determinable. e.g.
find class.
if valid, find method. , on.


Comments