⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtxsvrapi.java

📁 基于腾讯RTX即时通讯软件做的JAVA方面的2次开发
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package rtx;

/**
 * 封装对RTX的操作
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: Tencent C0. Ltd</p>
 * @author herolin
 * @version 1.0
 */
public class RTXSvrApi {

    //客户端与server传递的协议
    static int PRO_ADDUSER = 0x0001; //添加用户信息
    static int PRO_DELUSER = 0x0002; //删除用户信息
    static int PRO_GETUSERDETAILINFO = 0x0004; //获取用户详细信息
    static int PRO_SETUSERDETAILINFO = 0x0005; //更新用户详细信息
    static int PRO_GETUSERSMPLINFO = 0x0006; //获取用户简要信息
    static int PRO_SETUSERSMPLINFO = 0x0003; //更改用户简要信息
    static int PRO_SETUSERPRIVILEGE = 0x0007; //设置用户权限
    static int PRO_IFEXIST = 0x0008; //判断用户是否存在
    static int PRO_TRANUSER = 0X0009; //用户名与UIN的互转

    static int PRO_ADDDEPT = 0x0101; //增加部门
    static int PRO_DELDEPT = 0x0102; //删除部门
    static int PRO_SETDEPT = 0x0103; //更新部门信息
    static int PRO_GETCHILDDEPT = 0x0104; //获取子部门
    static int PRO_GETDEPTALLUSER = 0x0105; //获取部门用户
    static int PRO_SETDEPTPRIVILEGE = 0x0106; //设置部门权限
    static int PRO_GETDEPTSMPLINFO = 0x0107; //获取部门信息

    static int PRO_SMS_LOGON = 0x1000;
    static int PRO_SMS_SEND = 0x1001; //发送短信 多个手机号码(逗号分隔)可群发
    static int PRO_SMS_NICKLIST = 0x1002; //按用户读取短信
    static int PRO_SMS_FUNCLIST = 0x1003; //按功能号读取短信
    static int PRO_SMS_CHECK = 0x1004; //获取未读短信数量

    static int PRO_SYS_GETSESSIONKEY = 0x2000; //单点验证获取sessionKey
    static int PRO_SYS_GETUSERSTATUS = 0x2001; //查询用户在线状态
    static int PRO_SYS_SENDIM = 0x2002; //发送IM消息
    static int PRO_SYS_SESSIONKEYVERIFY = 0x2003; //验证sessionKey

    static int PRO_EXT_NOTIFY = 0x2100; //即时消息提醒

	static int PRO_IMPORTUSER = 0x0001; //导入xml用户数据
	static int PRO_EXMPORTUSER = 0x0002; //导出xml用户数据
	
    //对象名称
    static String OBJNAME_RTXEXT = "EXTTOOLS"; //扩展对象
    static String OBJNAME_RTXSYS = "SYSTOOLS"; //系统对象
    static String OBJNAME_DEPTMANAGER = "DEPTMANAGER"; //部门对象
    static String OBJNAME_USERMANAGER = "USERMANAGER"; //用户对象
    static String OBJNAME_SMSMANAGER = "SMSOBJECT"; //短信对象
    static String OBJNAME_USERSYNC = "USERSYNC"; //用户数据导入导出


    static String KEY_TYPE = "TYPE";

    static String KEY_USERID = "USERID";
    static String KEY_USERNAME = "USERNAME";
    static String KEY_UIN = "UIN"; //RTX编号
    static String KEY_NICK = "NICK"; //登陆名
    static String KEY_MOBILE = "MOBILE"; //手机
    static String KEY_OUTERUIN = "OUTERUIN";
    static String KEY_LASTMODIFYTIME = "LASTMODIFYTIME";
    static String KEY_FACE = "FACE";	//头像
    static String KEY_PASSWORD = "PWD";	//密码

    static String KEY_AGE = "AGE";	//年龄
    static String KEY_GENDER = "GENDER";	//性别
    static String KEY_BIRTHDAY = "BIRTHDAY";	//生日
    static String KEY_BLOODTYPE = "BLOODTYPE";	//血型
    static String KEY_CONSTELLATION = "CONSTELLATION";	//星座
    static String KEY_COLLAGE = "COLLAGE";	//大学
    static String KEY_HOMEPAGE = "HOMEPAGE";	//主页
    static String KEY_EMAIL = "EMAIL";	//邮箱
    static String KEY_PHONE = "PHONE";	//电话
    static String KEY_FAX = "FAX";	//电话分机号码
    static String KEY_ADDRESS = "ADDRESS";	//地址
    static String KEY_POSTCODE = "POSTCODE";	//邮编号码
    static String KEY_COUNTRY = "COUNTRY";	//国家
    static String KEY_PROVINCE = "PROVINCE";	//省份
    static String KEY_CITY = "CITY";	//城市
    static String KEY_MEMO = "MEMO";	//个人说明
    static String KEY_STREET = "STREET";	//街道
    static String KEY_MOBILETYPE = "MOBILETYPE";	
    static String KEY_AUTHTYPE = "AUTHTYPE";
    static String KEY_POSITION = "POSITION";
    static String KEY_OPENGSMINFO = "OPENGSMINFO";
    static String KEY_OPENCONTACTINFO = "OPENCONTACTINFO";
    static String KEY_PUBOUTUIN = "PUBOUTUIN";
    static String KEY_PUBOUTNICK = "PUBOUTNICK";
    static String KEY_PUBOUTNAME = "PUBOUTNAME";
    static String KEY_PUBOUTDEPT = "PUBOUTDEPT";
    static String KEY_PUBOUTPOSITION = "PUBOUTPOSITION";
    static String KEY_PUBOUTINFO = "PUBOUTINFO";
    static String KEY_OUTERPUBLISH = "OUTERPUBLISH";

    static String KEY_LDAPID = "LDAPID";
    static String KEY_DEPTID = "DEPTID";
    static String KEY_PDEPTID = "PDEPTID";
    static String KEY_SORTID = "SORTID";
    static String KEY_NAME = "NAME";
    static String KEY_INFO = "INFO";
    static String KEY_COMPLETEDELBS = "COMPLETEDELBS";


    //权限相关
    static String KEY_DENY = "DENY";
    static String KEY_ALLOW = "ALLOW";

    static String KEY_SESSIONKEY = "SESSIONKEY";


	//导入导出xml数据相关
	static String KEY_MODIFYMODE = "MODIFYMODE";
	static String KEY_DATA = "DATA";
	
	//IM消息
	static String KEY_SDKPASSWORD = "SDKPASSWORD";
	
    
	//短信相关
    static String KEY_SENDER = "SENDER";
    static String KEY_FUNNO = "FUNCNO";
    static String KEY_RECEIVER = "RECEIVER";
    static String KEY_RECEIVERUIN = "RECEIVERUIN";
    static String KEY_SMS = "SMS";
    static String KEY_CUT = "CUT";
    static String KEY_NOTITLE = "NOTITLE";
    static String KEY_DELFLAG = "DELFLAG";


    //RTXServer业务逻辑
    static String KEY_RECVUSERS = "RECVUSERS";
    static String KEY_IMMSG = "IMMSG";


    //消息提醒
    static String KEY_MSGID = "MSGID";
    static String KEY_MSGINFO = "MSGINFO";
    static String KEY_ASSISTANTTYPE = "ASSTYPE";
    static String KEY_TITLE = "TITLE";
	static String KEY_DELAYTIME = "DELAYTIME";

    //结果集合的描述
    static String KEY_RESULT_INCODE = "INNERCODE"; //内部错误
    static String KEY_RESULT_ERR_INFO = "ERR_INFO";
    static String KEY_RESULT_CODE = "CODE"; //返回错误
    static String KEY_RESULT_TYPE = "TYPE"; //返回类型
    static String KEY_RESULT_NAME = "NAME";
    static String KEY_RESULT_VALUE = "VALUE";
    static String KEY_RESULT_VARIANT = "VARIANT";


    //私有属性
    private int iObj;
    private int iProp;
    private int innerCode;
    private int iResult;

    static {
        System.loadLibrary("SDKAPIJava");
    }
    
    private static RTXSvrApi rtxDao;
    
    public static RTXSvrApi getInstance(){
    	if(rtxDao == null){
    		rtxDao = new RTXSvrApi();
    	}
    	return rtxDao;
    }

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //                                         系统自带的函数                                                           //
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	//初始化类
    public native boolean Init();	

	//析构类
    public native void UnInit();	

	//通过int类型的错误代码获取错误信息
    public native String GetError(int innerCode);	

	//获取版本号
    public native String GetVersion();	

	//通过对象名称创建一个对象,对象名称如OBJNAME_RTXEXT,返回int类型的句柄,在本文称为iObjectHandle
    public native int GetNewObject(String szObjectName);	

	//通过句柄获取对象名称(该方法一般用不上)
    public native String GetObjectName(int iObjectHandle);

	//设置句柄的对象名称(该方法一般用不上)
    public native int SetObjectName(int iObjectHandle, String szObjectName);

	//获取属性集合句柄 
    public native int GetNewPropertys();

	//该int类型的数是否是句柄 (该方法一般用不上)
    public native int IsHandle(int iHandle);

	//引用计数(该方法一般用不上)
    public native int AddRefHandle(int iHandle);

	//释放句柄
    public native int ReleaseHandle(int iHandle);

	//向属性集合添加属性,iHandle表示属性集合的句柄
    public native int AddProperty(int iPropertyHandle, String szName, String szValue);

	//在属性集合中删除某个属性,通过索引删除
    public native int ClearProperty(int iPropertyHandle, int iIndex);

	//在属性集合中删除某个属性,通过属性名删除
    public native int RemoveProperty(int iPropertyHandle, String szName);

	//获取属性集合中某个属性的值
    public native String GetProperty(int iPropertyHandle, String szName);

	//设置服务器IP地址
    public native int SetServerIP(int iObjectHandle, String szServerIP);

	//获取服务器IP地址
    public native String GetServerIP(int iObjectHandle);

	//获取服务器IP地址
    public native int GetServerPort(int iObjectHandle);

	//设置服务器端口
    public native int SetServerPort(int iObjectHandle, int iPort);

	//获取属性集合中属性的总数
    public native int GetPropertysCount(int iHandle);

	//通过索引获取属性集合中的条目
    public native int GetPropertysItem(int iHandle, int iIndex);

	//调用SDK,传入对象句柄,属性句柄,命令ID
    public native int Call(int iObjectHandle, int iPropertyHandle, int iCmdID);

	//获取返回结果的集性集合,传入一个返回结果的句柄
    public native int GetResultPropertys(int iResultHandle);

	//通过传入一个返回结果的句柄,获取该句柄的结果,以int类型表示
    public native int GetResultInt(int iResultHandle);

	//通过传入一个返回结果的句柄,获取该句柄的结果,以String类型表示
    public native String GetResultString(int iResultHandle);

	//获取一个属性的名称
    public String GetPropertyItemName(int iHandle) {
        return GetProperty(iHandle, KEY_RESULT_NAME);
    }

	//获取一个属性的值
    public String GetPropertyItemValue(int iHandle) {
        return GetProperty(iHandle, KEY_RESULT_VALUE);
    }

	//获取内部错误代码
    public int GetResultInnerCode(int iHandle) {
        String sz = GetProperty(iHandle, KEY_RESULT_INCODE);
        return Integer.parseInt(sz);
    }
	//获取内部错误信息
    public String GetResultErrString(int iHandle) {
        String sz = GetProperty(iHandle, KEY_RESULT_ERR_INFO);
        return sz;
    }
	//获取SDK调用返回结果的Code,0表示成功,其他表示失败
    public int GetResultCode(int iHandle) {
        String sz = GetProperty(iHandle, KEY_RESULT_CODE);
        return Integer.parseInt(sz);
    }

	//获取某个属性的类型(一般用不上)
    public int GetResultType(int iHandle) {
        String sz = GetProperty(iHandle, KEY_RESULT_TYPE);
        return Integer.parseInt(sz);
    }



    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //                                           扩展的函数                                                           //
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    /**
     * 初始化对象
     * @param objName String
     */
    private void svrInit(String objName) {
        iObj = GetNewObject(objName);
        iProp = GetNewPropertys();
    }

    /**
     * 释放资源
     */
    private void release() {
        ReleaseHandle(iObj);
        ReleaseHandle(iProp);
        ReleaseHandle(iResult);
    }

   /**
    * 设置服务器IP
    * @param strIP String
    */
   public void setServerIP(String strIP){
       svrInit(OBJNAME_RTXSYS);
       int iResult=SetServerIP(iObj,strIP);
       release();

   }

   /**
    * 设置服务器端口
    * @param iPort int 端口,默认是6000
    */
   public void setServerPort(int iPort){
       svrInit(OBJNAME_RTXSYS);
       int iResult=SetServerPort(iObj,iPort);
       release();
   }

   /**
    * 取服务器IP
    *@param iPort int
    */
   public String getServerIP(){
       svrInit(OBJNAME_RTXSYS);
       String ip=GetServerIP(iObj);
       release();
       return ip;
   }

   /**
    * 取服务器端口
    * @return String 服务器地址
    */
   public int getServerPort(){
       svrInit(OBJNAME_RTXSYS);
       int port=GetServerPort(iObj);
       release();
       return port;
   }

    /**
     * 查询用户在线状态
     * @param UserName String 用户帐号
     * @return int 0:离线 1:在线 2:离开 11:不存在该用户 其它:未知状态
     */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -