作者fatalcord (QQ)
看板AndroidDev
标题[问题] 请教会C语言或JNI的版友
时间Mon Jul 25 19:53:39 2011
开发层: (应用/框架/库/核心)
应用
问题:
我在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