Ich brauche Hilfe, weil ich nicht weiß, was zu tun ist. Ich bin ein Neuling in JNI.Java und JNI globale Variablen
Ich entwickle eine Android-Anwendung und es muss ein spezifisches Protokoll (OpenIGTLink) verwenden.
Um dieses Protokoll zu verwenden, verwende ich eine C-Bibliothek. Das Problem ist, dass ich eine globale Variable definieren muss, um die Verbindung zu speichern. Sie können im nächsten Beispiel sehen:
igtl::ClientSocket::Pointer socket;
Java_es_iac_iactec_infraredsend_Comunicacion_OpenIGTLink_connect(
JNIEnv *env,
jobject mjobject,
jstring host,
jint port) {
socket = igtl::ClientSocket::New();
const char *chost = env->GetStringUTFChars(host, 0);
int r = socket->ConnectToServer(chost, port);
if (r != 0) {
return (jstring) "Cannot connect to the server.";
}
return (jstring) "ok";
}
und in anderen Verfahren iwant zu tun:
Java_es_iac_iactec_infraredsend_Comunicacion_OpenIGTLink_send() {
igtl::ImageMessage::Pointer imgMsg = igtl::ImageMessage::New();
imgMsg->SetDimensions(size);
imgMsg->SetSpacing(spacing);
imgMsg->SetScalarType(scalarType);
imgMsg->SetDeviceName("ImagerClient");
imgMsg->SetSubVolume(svsize, svoffset);
imgMsg->AllocateScalars();
imgMsg->Pack();
socket->Send(imgMsg->GetPackPointer(), imgMsg->GetPackSize());
}
Ich weiß nicht, ob ich eine Java globale Variable deklarieren Objekt zu speichern de-Buchse und Greifen Sie auf JNI zu oder Sie können Socket wie eine globale Variable in der cpp-Datei definieren.
Vielen Dank an alle und Entschuldigung für mein Englisch.
Es gibt nicht so etwas wie eine Java Ziel variabel ist, ist es schwierig zu wissen, was du redest. – EJP
Vielen Dank für Ihre Antwort. Ich versuche mein Projekt zu erklären. Ich möchte mit OpenIGTLink Bilder von movil camera senden. Ich habe den Code in C++, um einige Bilder von der SD-Karte an einen Server zu senden. Jetzt möchte ich die Bilder von der Kamera senden, also habe ich eine SurfaceView, um die Kamerabilder vorherzusehen. Die Prozesse, die ich denke, ist, Form Java, rufen Sie eine JNI-Funktion auf, um die Verbindung zum Server herzustellen, und rufen Sie dann von Java eine andere JNI-Funktion auf, um die Bilder zu senden. Thnak du sehr !! –