Передача Bluetooth с ПК на Android через RFCOMM - PullRequest
2 голосов
/ 25 октября 2010

Я пытаюсь передавать данные с ноутбука на нативный код в телефоне Android.Я могу подключиться к ноутбуку и получить данные в течение некоторого времени, но нативный код вылетает со следующим сообщением позже:

"не удалось добавить в таблицу ссылок закрепленного массива JNI".

Фрагмент кода:
// Java-код для обработчика чтения Bluetooth
case MESSAGE_READ:
byte [] readBuf = (byte []) msg.obj;
// Отправкаданные в буфере для собственного кода sendData (readBuf, msg.arg1);
........................................................................

// C-код:
... sendData (JNIEnv * env, jclass cl, jbyteArray arr, размер jint)
{
.....
jbyte buffer = (jbyte ) env-> GetByteArrayElements (arr, & isCopy);
.... // скопировать буфер в локальную переменную.
if (isCopy == JNI_TRUE) {
env-> ReleaseByteArrayElements (arr, buffer, JNI_ABORT);

}

Что может быть не так?Я уже использую подобный код для передачи массива между Java и C в другом месте кода, и это прекрасно работает.

1 Ответ

0 голосов
/ 28 октября 2010

Эта проблема решена. На самом деле, «другая» часть, на которую я ссылаюсь, имела проблему.

Вместо GetByteArrayElements () использовался GetByteArrayRegion (), чтобы проблем с закреплением нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...