?? jni_sms.cpp
字號:
/*
JNI 封裝聯通SMS短信API的java接口,只封裝了個別函數供測試用
by Paladin, netcom@163.net, http://www.programsalon.com
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory.h>
#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_<class name>_<function_name>, 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<c_usercount; i++)
c_usernumber[i] =cc_usernumber+10; // 此處不一定對,需要自己修改
char *c_msg_src =JGETSTRING(env, msg_src);
char *c_service_id =JGETSTRING(env, service_id);
char *c_feetype =JGETSTRING(env, feetype);
char *c_feecode =JGETSTRING(env, feecode);
char *c_givenvalue =JGETSTRING(env, givenvalue);
unsigned char c_agentflag =(unsigned char)agentflag;
unsigned char c_morelatetomtflag =(unsigned char)morelatetomtflag;
unsigned char c_msg_level =(unsigned char)msg_level;
char *c_valid_time =JGETSTRING(env, valid_time);
char *c_at_time =JGETSTRING(env, at_time);
unsigned char c_reportflag =(unsigned char)reportflag;
unsigned char c_TP_pid =(unsigned char)TP_pid;
unsigned char c_TP_udhi =(unsigned char)TP_udhi;
unsigned char c_msg_fmt =(unsigned char)msg_fmt;
unsigned char c_msg_type=(unsigned char)msg_type;
unsigned int c_msg_length =(unsigned int)msg_length;
char *c_msg_content =JGETSTRING(env, msg_content);
int rtn =SendSubmit(
c_SequenceNumber,
c_SPNumber,
c_chargenumber,
c_usercount,
c_usernumber,
c_msg_src,
c_service_id,
c_feetype,
c_feecode,
c_givenvalue,
c_agentflag,
c_morelatetomtflag,
c_msg_level,
c_valid_time,
c_at_time,
c_reportflag,
c_TP_pid,
c_TP_udhi,
c_msg_fmt,
c_msg_type,
c_msg_length,
c_msg_content
);
JRELEASEINTARRAY(env, SequenceNumber, c_SequenceNumber);
JRELEASESTRING(env, SPNumber, c_SPNumber);
JRELEASESTRING(env, chargenumber, c_chargenumber);
JRELEASESTRING(env, usernumber,cc_usernumber);
JRELEASESTRING(env, msg_src, c_msg_src);
JRELEASESTRING(env, service_id, c_service_id);
JRELEASESTRING(env, feetype, c_feetype);
JRELEASESTRING(env, feecode, c_feecode);
JRELEASESTRING(env, givenvalue, c_givenvalue);
JRELEASESTRING(env, valid_time, c_valid_time);
JRELEASESTRING(env, at_time, c_at_time);
JRELEASESTRING(env, msg_content, c_msg_content);
return rtn;
}
JNIEXPORT jint JNICALL Java_jni_1sms_Test(JNIEnv *env, jobject obj, jint i)
{
int c_i =i;
printf("jni_sms:Test(), i=%d", c_i);
return i;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -