C 调用java接口参数传递

fcsong000833 发布于 2013/10/25 10:10
阅读 1K+
收藏 1

C通过jni调用java,java中接口参数为byte[]  ,C中数据为char *,如何将char *数据传递到java的byte[]中 ??

如:

.java

   int javaapi(byte[] data, int datalen)

.c

  int datatojava(char *data){

   //这里需要调用javaapi接口 并将data传递给byte[] data, 参数如何进行处理 ???

}

加载中
0
vizee
vizee
void c_char(char *buffer, int length)
{
jmethodID method_id;
jclass class_obj;
jbyteArray bytes;

if (!g_env)
return;
class_obj = (*g_env)->FindClass(g_env, "包名/类名");
if (class_obj == 0)
return;
method_id = (*g_env)->GetStaticMethodID(g_env, class_obj, "write", "([BI)V");
if (method_id) {
bytes = (*g_env)->NewByteArray(g_env, length);
(*g_env)->SetByteArrayRegion(g_env, bytes, 0, length, (const jbyte *)buffer);
(*g_env)->CallStaticVoidMethod(g_env, class_obj, method_id, bytes, length);
(*g_env)->ReleaseByteArrayElements(g_env, bytes, (jbyte *)buffer, 0);
}
return;


0
地瓜儿
地瓜儿
jdoubleArray data
返回顶部
顶部