[問題] 請教會C語言或JNI的版友
開發層: (應用/框架/庫/核心)
應用
問題:
我在Android應用程式下寫了一個.C檔用來接收Sensor傳來的值
程式碼如下
//接收訊息
JNIEXPORT jstring JNICALL
Java_com_android_testuart_Uart2C_receiveMsgUart(JNIEnv *env, jobject mc) {
char buffer[1024];
char buf[1024];
int len, i = 0, k = 0;
memset(buffer, 0, sizeof(buffer));
len = read(fd, buffer, sizeof(buffer));
if (len >0) {
buffer[len]='\0';
return ((*env)->NewStringUTF(env, buffer));
} else
return NULL;
}
Sensor傳進來的值為一個Char陣列
類似這樣的型式Char c[] = {0x00,0x20,0x30,0x22...... }
但每當Sensor傳陣列進程式時就會自動關閉
幾經嘗試後發現是 return ((*env)->NewStringUTF(env, buffer));這行的問題
自己試著改了幾次始終無法完成
所以才想上來問問看
目標是將傳進來的陣列存成string型式(印象中C裡面沒有string?不曉得有沒有記錯)
傳回.java的主程式顯示在螢幕上
或是能將傳進來的陣列直接傳回.java的主程式作處理,但因為剛接觸JNI 所以
也不是很熟悉,不曉得能不能改以這樣的方式完成,
懇請各位幫忙
有不清楚的地方我會在補充
由衷感謝
輸入:
預期輸出:
錯誤輸出:
錯誤訊息:
程式碼: (請多利用置底文網站)
參考: (書籍/網頁/...)
補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.56.98
※ fatalcord:轉錄至看板 java 07/25 19:54
※ fatalcord:轉錄至看板 C_and_CPP 07/25 19:56
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章