程序人生

          不甘寂寞^_^
          posts - 2, comments - 2, trackbacks - 0, articles - 4
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Java代碼調(diào)用RTX發(fā)送提醒消息

          Posted on 2012-02-10 22:20 阿星 閱讀(2448) 評論(2)  編輯  收藏 所屬分類: JAVARTX

          公司最近的一個項目有這樣一個需求:就是通過java代碼調(diào)用RTX提供的API向RTX發(fā)送消息,達到一種及時提醒的效果。

            讓我對RTX有了一定的了解和認(rèn)識:

            雖然RTX提供的API還比較豐富,但操作的過程中還是會碰到一些大大小小的問題。

                我所碰到的第一個問題就是數(shù)字賬號無法發(fā)送消息的問題:

           

              public int sendNotice(RtxSendNoticeBean rtxb) {
              int iRet= -1;
              RTXSvrApi RtxsvrapiObj = new RTXSvrApi();   //RTX提供的API

              if( RtxsvrapiObj.Init()){ 
                RtxsvrapiObj.setServerIP(rtxb.getServerip()); //設(shè)置RTX服務(wù)器IP地址
                RtxsvrapiObj.setServerPort(rtxb.getServerprot()); //設(shè)置RTX服務(wù)器端口

                String szKey = RtxsvrapiObj.getSessionKey(rtxb.getRecivers());
                System.out.println("SessionKey:" + szKey);
                //API中的消息發(fā)送 功能    0:操作成功 非0:操作不成功  
                iRet = RtxsvrapiObj.sendNotify(rtxb.getRecivers(),rtxb.getTitle(),rtxb.getContent(), rtxb.getType(),rtxb.getDelarytime());
              }
              if (iRet == 0){
                System.out.println("發(fā)送成功");
              }else{
                System.out.println("發(fā)送失敗");
              }
              RtxsvrapiObj.UnInit();
              return iRet;
             }

            使用以上代碼,若RTX是非純數(shù)字賬號就沒問題,可以發(fā)送。但如果是純數(shù)字賬號就沒反應(yīng),經(jīng)多處查找資料得處結(jié)果,這是RTX2011之前版本的bug。要想同時操作數(shù)字賬號可以用以下兩種方式解決:

            1、直接安裝RTX2011SDK(若此方案可行就不用再做不第二步操作)

              下載文件:RTXS2011SDK(8.0.786.202).exe

             2、如果已安裝2010SDK,又不想使用RTX2011版SDK,就需要做已下修改:

              a. 把RTXSSDK2010安裝目錄下的SDKAPIC.dllSDKAPI.dllSDKAPIJava.dll用RTX2011SDK中的進行覆蓋。

              b. 再把SDKAPIC.dllSDKAPI.dllSDKAPIJava.dll拷貝去覆蓋./windows/system32

              c. 用regsvr32 命令注冊一下SDKAPI.dll文件。

             最后需要在RTX提供的API中添加一行代碼:

           

            /**
            * 發(fā)送消息提醒
            * @param receivers String 接收人(多個接收人以逗號分隔)
            * @param title String 消息標(biāo)題
            * @param msg String 消息內(nèi)容
            * @param type String 0:普通消息 1:緊急消息
            * @param delayTime String 顯示停留時間(毫秒) 0:為永久停留(用戶關(guān)閉時才關(guān)閉)
            * @return int 0:操作成功 非0:操作不成功
            */
            public int sendNotify(String receivers,String title,String msg, String type,String delayTime) {

              svrInit(OBJNAME_RTXEXT);

              AddProperty(iProp, KEY_USERNAME, receivers);
              AddProperty(iProp, KEY_TITLE, title);
              AddProperty(iProp, KEY_MSGINFO, msg);
              AddProperty(iProp, KEY_TYPE, type);
              AddProperty(iProp, KEY_MSGID, "0");
              AddProperty(iProp, KEY_ASSISTANTTYPE, "0");
              AddProperty(iProp,KEY_UINTYPE,"Account");     // 如果設(shè)置KEY_UINTYPE 為Account,無論傳進去是純數(shù)字還是字符串,都認(rèn)為是帳號。

           

              if(!"0".equals(delayTime))
                AddProperty(iProp, KEY_DELAYTIME, delayTime);

           

              iResult = Call(iObj, iProp, PRO_EXT_NOTIFY);
              innerCode = GetResultInnerCode(iResult);

              release();
              return innerCode;
            }

               這樣改好這后,大功告成!


          評論

          # re: Java代碼調(diào)用RTX發(fā)送提醒消息  回復(fù)  更多評論   

          2015-12-12 09:08 by 玩玩
          是滴是滴

          # 通天塔  回復(fù)  更多評論   

          2015-12-12 09:15 by 玩玩
          剛剛

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 江安县| 邮箱| 本溪市| 吴忠市| 瓮安县| 都昌县| 河西区| 昌都县| 新泰市| 布拖县| 石楼县| 宁都县| 西平县| 镇远县| 呈贡县| 三穗县| 绿春县| 西城区| 隆化县| 宁阳县| 安泽县| 阿鲁科尔沁旗| 托里县| 桐梓县| 郴州市| 津南区| 洛南县| 黄山市| 安国市| 毕节市| 龙门县| 白沙| 洞口县| 宽甸| 巫溪县| 治多县| 句容市| 溆浦县| 宜良县| 赫章县| 武威市|