我是JNI的新手,需要将char[]
转换为jcharArray
,然后在JAVA中创建String
。此String
将在Parcel
中传递到其他图层。从Parcel
读取时,我希望其他组件获得与char数组相同的字节序列。
jchar *jcharBuffer1 = (jchar *)calloc(sizeof(jchar), length+1);
for (count = 0; count<length; count ++) {
jcharBuffer1[count] = (jchar)c_array[count];
}
jcharArray str1 = env->NewCharArray(length+1);
env->SetCharArrayRegion (str1, 0, length+1, jcharBuffer1);
这是我的java代码
public void testing(char[] array){
String test_str = new String(array);
Setdata(test_str)
}
public void Setdata(String data) {
Parcel request = Parcel.obtain();
Parcel resp = Parcel.obtain();
try {
.
.
request.writeString(data);
}
}
在整个过程中,我希望转换成字符串后,相同的字节序列到达。这些字节是从服务器的Base64字符串解码输出的。
1. jchar
是16位,但C字节是8位。那么我怎样才能达到这个要求呢?