JNI c调用Java 返回值为String
来源:互联网 发布:pdf批量转换jpg mac 编辑:程序博客网 时间:2024/06/05 03:04
Java定义:
public String getSignatureInfo() { try { PackageInfo packageInfo = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), PackageManager.GET_SIGNATURES); android.content.pm.Signature[] signs = packageInfo.signatures; android.content.pm.Signature sign = signs[0]; byte[] signature = sign.toByteArray(); X509Certificate cert = parseSignature(signature); return getMessageDigest("SHA1", signature); } catch (Exception e) { e.printStackTrace(); } return null; }c代码:
JNIEXPORT jint JNICALL Java_com_letv_jr_safesignaturelibrary_JrSignature_getCLangString(JNIEnv *env, jobject obj){ //得到类 jclass clazz=(*env)->GetObjectClass(env,obj); if(clazz==0){ return; } //缓存类 targetClass=(jclass)(*env)->NewGlobalRef(env,clazz); if(targetClass==0){ return; } //缓存对象 targetObject=(jobject)(*env)->NewGlobalRef(env,obj); if(targetObject==0){ return; } //缓存方法 targetMethodID=(*env)->GetMethodID(env,clazz,"getSignatureInfo","()Ljava/lang/String;"); if(targetMethodID==0){ return; } //拿到Java返回值 jstring pring=(jstring)(*env)->CallObjectMethod(env,obj,targetMethodID); //转换成char型 char *print=(char *)(*env)->GetStringUTFChars(env,pring,0); if (strcmp(secret, print) == 0){ return 0; }else{ return 1; }}
0 0
- JNI c调用Java 返回值为String
- jni C语言调用java的小例子(java返回string)
- jni实现返回值为java类型的String[]和List<E>的函数
- jni技术java调用c代码返回字符串
- Java调用C JNI
- jni c调用java
- JNI java c 调用
- JNI C调用Java
- Java JNI 调用c/cpp
- C语言调用Java JNI
- java JNI调用c程序
- JNI学习-C 调用Java
- JNI-->Java调用C语言
- JNI-->C调用Java语言
- Android JNI C调用Java
- jni - c 调用java方法
- jni 开发 c调用java
- java jni 调用C语言
- [java]杂记4
- Rest API: 基本认证和摘要认证
- 垒骰子
- 如何修改git全局初始化的用户名和邮箱? (git修改user.name 和user.email)
- cf 682C
- JNI c调用Java 返回值为String
- AJAX——核心XMLHttpRequest对象
- 第二章_2.3volatle关键字
- Android中支付宝,微信植入的详细流程
- Python数据分析入门
- python入门学习
- 点击表格获取表格行或列索引
- 推荐vim 一键配置
- Linux 工作队列之工作者线程创建