Created
July 4, 2019 23:51
-
-
Save cawka/87fdf12042cbc4f6746bc91c14e61161 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In native code, create the following: | |
// Globals | |
static jmethodID midStr; | |
static char * sigStr = "(Ljava/lang/String;ILjava/lang/String;)V"; | |
// Init - One time to initialize the method id, (use an init() function) | |
midStr = (*env)->GetMethodID(env, class, "javaDefineString", sigStr); | |
// Methods | |
static void javaDefineString(JNIEnv * env, jobject o, char * name, jint index, char * value) { | |
jstring string = (*env)->NewStringUTF(env, name); | |
(*env)->CallVoidMethod(env, o, midStr, string, index, (*env)->NewStringUTF(env, value)); | |
} | |
In Java code create the following: | |
Map<String, String> strings = new HashMap<String, String>(); | |
// Never call this from Java | |
void javaDefineString(String name, int index, String value) { | |
String key = name + "." + index; | |
strings.put(key, value); | |
} | |
Native usage to send data: | |
javaDefineString(env, o, "Greet", 0, "Hello from native code"); | |
javaDefineString(env, o, "KeyTimeout", 0, "one second"); | |
javaDefineString(env, o, "KeyTimeout", 1, "two second"); | |
Java usage to receive data: | |
System.out.println(strings.get("Greet.0"); | |
System.out.println(strings.get("KeyTimeout.0"); | |
System.out.println(strings.get("KeyTimeout.1"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment