JNI编程(别望了哦,留作备注)

说明

1.数据类型
java数据类型在JNI调用的类型
2.由于命令生成C文件较麻烦,直接在eclipse里面根据规则自己写C文件。直接上代码
2.1 头文件

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class io_github_yanbober_ndkapplication_NdkJniUtils */

#ifndef _Included_com_xm_spsgsdkcore_jni_MsJni
#define _Included_com_xm_spsgsdkcore_jni_MsJni
#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT void JNICALL Java_com_xm_spsgsdkcore_jni_MsJni_sentDataSms
  (JNIEnv * , jclass , jstring, jstring, jshort, jbyteArray,jobject,jobject);

JNIEXPORT void JNICALL Java_com_xm_spsgsdkcore_jni_MsJni_sentTextSms
  (JNIEnv * , jclass , jstring, jstring, jstring, jobject,jobject);

#ifdef __cplusplus
}
#endif
#endif

CPP文件具体的实现


#include "msfason.h"
#include <string.h>
//com.xm.spsgsdkcore.util.sms
JNIEXPORT void JNICALL Java_com_xm_spsgsdkcore_jni_MsJni_sentDataSms
  (JNIEnv * env, jclass smsUtil, jstring phoneNumber , jstring scAddress, jshort destinationPort,
          jbyteArray data,jobject sentPI,jobject deliverPI){

    //定义SmsManager class
    jclass sms_class = env->FindClass("android/telephony/SmsManager");

    //jmethodID setName_method = env->GetMethodID(sms_class, "setName", "(Ljava/lang/String;)V");
    //获取 SmsManager sms = SmsManager.getDefault();
    jmethodID getDefault_methodID = env->GetStaticMethodID(sms_class, "getDefault", "()Landroid/telephony/SmsManager;");
    //获取SMS实例对象
    jobject sms_obj = env->CallStaticObjectMethod(sms_class,getDefault_methodID);
    //sms.sendDataMessage(phoneNumber, null, destinationPort, data, sentPI, deliverPI);
    jmethodID sendDataMessage_methodID=env->GetMethodID(sms_class, "sendDataMessage","(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V");
    env->CallVoidMethod(sms_obj, sendDataMessage_methodID,phoneNumber,scAddress,destinationPort,data,sentPI,deliverPI);
}
com.xm.spsgsdkcore.util.sms
JNIEXPORT void JNICALL Java_com_xm_spsgsdkcore_jni_MsJni_sentTextSms
  (JNIEnv * env, jclass smsUtil, jstring phoneNumber, jstring scAddress,
          jstring payMessage, jobject sentPI,jobject deliverPI){
    //定义SmsManager class
    jclass sms_class = env->FindClass("android/telephony/SmsManager");

    //jmethodID setName_method = env->GetMethodID(sms_class, "setName", "(Ljava/lang/String;)V");
    //获取 SmsManager sms = SmsManager.getDefault();
    jmethodID getDefault_methodID = env->GetStaticMethodID(sms_class, "getDefault", "()Landroid/telephony/SmsManager;");
    //获取SMS实例对象
    jobject sms_obj = env->CallStaticObjectMethod(sms_class,getDefault_methodID);
    //获取方法IDsendTextMessage sms.sendTextMessage(phoneNumber, null,payMessage, sentPI, deliverPI);
    jmethodID sendTextMessage_methodID=env->GetMethodID(sms_class, "sendTextMessage",
            "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V");
    env->CallVoidMethod(sms_obj, sendTextMessage_methodID,phoneNumber,scAddress,payMessage,sentPI,deliverPI);

}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值