JAVA Code
Here is some part of my code that I have written in JAVA, As you can see this is a class called JC_VerificationCandidate that have two String members enrollmentID and seedIndex.
class JC_VerificationCandidate {
public JCDSM_VerificationCandidate( String enrollmentID, String seedIndex ) {
this.enrollmentID = enrollmentID;
this.seedIndex = seedIndex;
}
public String enrollmentID;
public String seedIndex;
}
Here is main class where I have native method and from where I called that native method.
public class DsmLibraryTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
JCDSM_VerificationCandidate verificationCandidate[] = {new JCDSM_VerificationCandidate( "tom", "anna" )};
dsm.JDSMVerify( 123456, "http:\\www.test_url.com", bytes, verificationCandidate );
}
public native int JDSMVerify(
int someValue1,
String someValue2,
byte[] someValue3,
JC_VerificationCandidate jVerificationCandList[] );
}
As you can see I create array with one object and give it to my function.
JCDSM_VerificationCandidate verificationCandidate[] = {new JCDSM_VerificationCandidate( "tom", "anna" )};
JNI Code
How can I get that two strings enrollmentID, eedIndex that I have set from java application and which are stored in jVerificationCandList ?
JNIEXPORT jint JNICALL Java_com_Dsm_Test_DSM_JDSMVerify( JNIEnv* env, jobject thiz, jint jhDevice, jstring jurlID,
jbyteArray jInputInfo, jobjectArray jVerificationCandList ) {
}
The following code should allow you to access the field enrollmentID. Use the JNI String functions to read/manipulate them.