www.pudn.com > jni_sms.zip > jni_sms.cpp
/* JNI 封装联通SMS短信API的java接口,只封装了个别函数供测试用 by Paladin, netcom@163.net, http://www.programsalon.com */ #include#include #include #include #include "jni_0005fsms.h" #include "VASPClient.h" //************************************************************ #define JGETSTRING(env, str) (char *)env->GetStringUTFChars(str, 0) #define JGETBYTEARRAY(env, b) (unsigned char *)env->GetByteArrayElements(b, 0) #define JGETINTARRAY(env, ia) (int *)env->GetIntArrayElements(ia, 0) #define JRELEASESTRING(env, str, p) env->ReleaseStringUTFChars(str, p) #define JRELEASEBYTEARRAY(env, b, p) env->ReleaseByteArrayElements(b, (signed char *)p, 0) #define JRELEASEINTARRAY(env, ia, p) env->ReleaseIntArrayElements(ia, (long *)p, 0) //////////////////////////////////////////////////////////////////////////////// // Java_ _ , if name have "_", use "_1" instead of "_" JNIEXPORT jint JNICALL Java_jni_1sms_vasp_1Initialize (JNIEnv *env, jobject obj, jstring Server_IP, jint Port, jstring ICP_id) { char *c_server_ip =JGETSTRING(env, Server_IP); int c_port =Port; char *c_icp_id =JGETSTRING(env, ICP_id); printf("vasp_Initialize:: ip=%s, port=%d, icp=%s", c_server_ip, c_port, c_icp_id); int rtn = vasp_Initialize(c_server_ip, c_port, c_icp_id); JRELEASESTRING(env, Server_IP, c_server_ip); JRELEASESTRING(env, ICP_id, c_server_ip); return rtn; } /////////////////////////////////////////////////////////////////////////////////////////// JNIEXPORT jint JNICALL Java_jni_1sms_SendSubmit ( JNIEnv *env, jobject obj, jintArray SequenceNumber, jstring SPNumber, jstring chargenumber, jint usercount, jstring usernumber, jstring msg_src, jstring service_id, jstring feetype, jstring feecode, jstring givenvalue, jint agentflag, jint morelatetomtflag, jint msg_level, jstring valid_time, jstring at_time, jint reportflag, jint TP_pid, jint TP_udhi, jint msg_fmt, jint msg_type, jint msg_length, jstring msg_content) { unsigned int *c_SequenceNumber =(unsigned int *)JGETINTARRAY(env, SequenceNumber); char *c_SPNumber =JGETSTRING(env, SPNumber); char *c_chargenumber =JGETSTRING(env, chargenumber); unsigned char c_usercount =(unsigned char)usercount; char *cc_usernumber =JGETSTRING(env, usernumber); char *c_usernumber[10]; for(int i =0; i