JNI中如何将C中的参数传给android
具体问题是这样的:我现在做的是一个通讯协议(硬件开发商给的)下android 手机和设备进行通讯,设备的指令(十六进制的)都是在C代码中实现的,我要如何把指令得到返回到JAVA中?C代码如下:
int get_version(unsigned char *nVerLen,unsigned char *sVerData)
{
int st=0;
int nRLen=0;
unsigned char send_buffer[5];
memset(send_buffer,0,5);
unsigned char receive_buffer[100];
memset(receive_buffer,0,100);
*nVerLen=0;
send_buffer[0]=CMDH_DEVICE;
send_buffer[1]=CMDL_VERSION;
send_buffer[2]=0;//delay
//set_timeouts(100, 0);
st=send_cmd_mt3(3,send_buffer,&nRLen,receive_buffer);
if(st==0)
{
*nVerLen=nRLen;
memcpy(sVerData,receive_buffer,nRLen);
}
//set_timeouts(5000, 0);
return st;
}
JNIEXPORT jbyteArray JNICALL Java_com_example_psam_1demo_PSAM_getversion
(JNIEnv *env, jobject obj){
}
JNIEXPORT jbyteArray JNICALL Java_com_example_psam_1demo_PSAM_getversion
(JNIEnv *env, jobject obj) {
unsigned char buffer[100];
unsigned char length;
get_version(&length, buffer);
jbyteArray array = (*env)->NewByteArray(env, length);
(*env)->SetByteArrayRegion(env, array, 0, length, buffer);
return array;
}