android典型代码系列(十八)------把java中的jstring的类型转化成一个c语言中的char字符串
2015-12-04 14:18
405 查看
15把java中的jstring的类型转化成一个c语言中的char字符串 :
/** * 返回值 char* 这个代表char数组的首地址 * Jstring2CStr 把java中的jstring的类型转化成一个c语言中的char字符串 */ char* Jstring2CStr(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsstring = (*env)->FindClass(env,"java/lang/String"); jstring strencode = (*env)->NewStringUTF(env,"GB2312"); jmethodID mid = (*env)->GetMethodID(env,clsstring, "getBytes", "(Ljava/lang/String;)[B"); jbyteArray barr= (jbyteArray)(*env)->CallObjectMethod(env,jstr,mid,strencode); // String .getByte("GB2312"); jsize alen = (*env)->GetArrayLength(env,barr); jbyte* ba = (*env)->GetByteArrayElements(env,barr,JNI_FALSE); if(alen > 0) { rtn = (char*)malloc(alen+1); //"\0" memcpy(rtn,ba,alen); rtn[alen]=0; } (*env)->ReleaseByteArrayElements(env,barr,ba,0); // return rtn; }
相关文章推荐
- 【Android】打开后台运行或者未开启的应用
- android典型代码系列(十七)------C代码中加入LOG_引入头文件
- 基于Android SQLite的升级
- 全栈工场实训13---Android---消息总线机制
- android典型代码系列(十六)------GPS定位
- android典型代码系列(十五)------字节转KB_MB_GB方法
- 自定义view 使用canvas画动态图
- android典型代码系列(十四)------子线程中弹出土司的方法
- android典型代码系列(十三)------通过反射获得未暴露的方法
- android典型代码系列(十二)------删除某个文件夹里面的所有内容(递归)
- android studio 导入项目Gradle版本不一致问题解决方法【android studio】
- 016Handler的使用
- android典型代码系列(十一)------判断某个应用程序是 不是三方的应用程序
- Android 用Intent调用系统中经常被用到的组件
- android典型代码系列(十)------获取一个应用程序的权限信息(反射)
- Android 4.4前后版本读取图库图片和拍照完美解决方案
- android(8)(获取手机系统内存和SD卡内存信息)
- android典型代码系列(九)------电话拦截
- github android 控件集群
- 三步搞定Android应用底部导航栏