请教一下,我是ANDROID开发新手,现在有一个程序要移植到ANDROID,这个程序有一个接口如下:void sendData(unsigned char * data, int size);然后我写的JNI接口如下:sendData(JNIEnv* env, jobject thiz, jbyteArray data, jint size);这样写对吗? 如果是对的,我怎么把jbyteArray转换成unsigned char * ?sendData(JNIEnv* env, jobject thiz, jbyteArray data, jint size)
{
unsigned char * buff = new unsigned char[size]; // 这里怎么把data转换成 unsigned char *并复制到 buff里面去?
}
{
unsigned char * buff = new unsigned char[size]; // 这里怎么把data转换成 unsigned char *并复制到 buff里面去?
}
unsigned char* as_unsigned_char_array(JNIEnv *env, jbyteArray array)
{
int len = env->GetArrayLength (array);
unsigned char* buf = new unsigned char[len];
env->GetByteArrayRegion(array, 0, len, reinterpret_cast<jbyte*>(buf)); return buf;
}
jbyteArray as_byte_array(JNIEnv *env, unsigned char* buf, int len)
{
jbyteArray array = env->NewByteArray(len);
env->SetByteArrayRegion(array, 0, len, reinterpret_cast<jbyte*>(buf)); return array;
}