Search This Blog

Friday, June 22, 2012

JNI

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 {
              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, passwd, tpasswd);    
     (*env)->ReleaseStringUTFChars(env, ip, tip);    
     return;
}

1 comment: