JAVA-код
Вот часть моего кода, который я написал в JAVA , как вы можете видеть, этокласс с именем JC_VerificationCandidate
, который имеет два String
члена enrollmentID
и seedIndex
.
class JC_VerificationCandidate {
public JCDSM_VerificationCandidate( String enrollmentID, String seedIndex ) {
this.enrollmentID = enrollmentID;
this.seedIndex = seedIndex;
}
public String enrollmentID;
public String seedIndex;
}
Вот основной класс, в котором у меня есть собственный метод и откуда я вызвал этот собственный метод.
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[] );
}
Как видите, я создаю массив с одним объектом и передаю его своей функции.
JCDSM_VerificationCandidate verificationCandidate[] = {new JCDSM_VerificationCandidate( "tom", "anna" )};
Код JNI
Как я могу получить две строки enrollmentID
, eedIndex
, которые я установил из Java-приложения и которые хранятся в jVerificationCandList
?
JNIEXPORT jint JNICALL Java_com_Dsm_Test_DSM_JDSMVerify( JNIEnv* env, jobject thiz, jint jhDevice, jstring jurlID,
jbyteArray jInputInfo, jobjectArray jVerificationCandList ) {
}