Pass String as parameter from Android code to Java Native Code
Android Java
Code:
public static final String JNI_LIB_NAME = "sampleJniLibrary";
public class JNIClass {
static {
static {
System.loadLibrary(JNI_LIB_NAME);
}
public native void addClientList(String userName, String password,
String
ipAddress, int mode);
}
JNI C Code:
Void
Java_com _android_sample_JNIClass_addClientList( JNIEnv* env,
jobject thiz, jstring user, jstring passwd, jstring ip, jint ipermission )
{
const
char *tuser;
const
char *tpasswd;
const
char *tip;
int
tipermission;
tuser =
(*env)->GetStringUTFChars(env, user, 0);
tpasswd
= (*env)->GetStringUTFChars(env, passwd, NULL);
tip =
(*env)->GetStringUTFChars(env, ip, 0);
tipermission = ipermission;
// do required
operation
add_client_list(tuser, tpasswd, tip, tipermission);
//release
resources when done
(*env)->ReleaseStringUTFChars(env, user, tuser);
(*env)->ReleaseStringUTFChars(env, user, tuser);
(*env)->ReleaseStringUTFChars(env,
passwd, tpasswd);
(*env)->ReleaseStringUTFChars(env,
ip, tip);
return;
}
This comment has been removed by the author.
ReplyDelete