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