2010-10-25 7 views
2

J'essaie de diffuser des données à partir d'un ordinateur portable au code natif dans un téléphone android . suis capable de jumeler avec un ordinateur portable et d'obtenir des données pendant un certain temps, mais les accidents de code natif avec le message suivant plus tard:Bluetooth transfert de PC à Android via RFCOMM

« a échoué à ajouter JNI table ref tableau épinglé ».

Extrait de code:
// code Java pour lire Bluetooth gestionnaire
cas MESSAGE_READ:
byte [] readBuf = (byte []) msg.obj;
// Envoie les données dans le tampon au code natif sendData (readBuf, msg.arg1);
................................................ ........................

// Code C:
... sendData (JNIEnv * env, jclass cl, jbyteArray arr , la taille de JINT)

{ .....
jbyte buffer = (jbyte) env-> GetByteArrayElements (arr, & isCopy);
.... // copie le tampon dans une variable locale.
if (isCopie == JNI_TRUE) {
env-> ReleaseByteArrayElements (arr, buffer, JNI_ABORT);

}

Quoi de mal? J'utilise déjà un code similaire pour le transfert de tableaux entre Java et C ailleurs dans le code, et cela fonctionne très bien.

Répondre

0

Ce problème a été résolu. En fait, la partie "autre" à laquelle je fais référence a le problème. À la place de GetByteArrayElements(), GetByteArrayRegion() a été utilisé pour que ne génère aucun problème d'épinglage.

Questions connexes