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

📄 mobilelistener.java

📁 上海移动通信企信通客户端接口例程,采用Empp API函数
💻 JAVA
字号:

import java.math.BigInteger;

import com.wondertek.esmp.esms.empp.EMPPDeliver;
import com.wondertek.esmp.esms.empp.EMPPDeliverReport;
import com.wondertek.esmp.esms.empp.EMPPObject;
import com.wondertek.esmp.esms.empp.EMPPRecvListener;
import com.wondertek.esmp.esms.empp.EMPPSubmitSM;
import com.wondertek.esmp.esms.empp.EmppApi;

public class MobileListener implements EMPPRecvListener 
{
	private EmppApi emppObj = null;
	
	private static LogManager logMan = new LogManager( MobileListener.class.getName() );

	public MobileListener( EmppApi emppObject )
	{
		this.emppObj = emppObject;
	}
	
	/**
	  * 收到上海【移动】服务器下发的消息(手机上行MO、状态报告Report)
	  */
	 public void onMessage(EMPPObject message) 
	 {
	  	  if( message instanceof EMPPDeliver )
	  	  {
	  			EMPPDeliver deliver = (EMPPDeliver)message;
	  			
	  			if( deliver.getRegister()==EMPPSubmitSM.EMPP_STATUSREPORT_TRUE )
	  			{
	  				//收到状态报告
	  				EMPPDeliverReport report=deliver.getDeliverReport();
	  				byte[] msgId=fiterBinaryZero(report.getMsgId());
	  				String temp = "msgId=" + new BigInteger(msgId) + ","
	  					+ "status=" + report.getStat() + ","
	  					+ "mobile=" + report.getDstAddr() ; 
	  				 
	  				logMan.printLogInfo( "收到移动状态报告:" + temp );
	  			}
	  			
	  			else
	  			{
	  				//收到手机回复	  				
		  			String temp = "srcTermId=" + deliver.getSrcTermId() + ","
		  				+ "dstAddr=" + deliver.getDstAddr() + "," 
		  				+ "msgContent=" + deliver.getMsgContent().getMessage() ;
		  			
		  			logMan.printLogInfo( "收到移动MO:" + temp );					
	  			}
	  			
	  		    return;
	  	  }		  	      
	 }

	 /**
	  * 收到上海【移动】的关闭连接消息
	  */
	 public void OnClosed(Object message ) 
	 {
		 logMan.printLogInfo( "Mobile closed。" );
		 
		 MobileListener listener = new MobileListener( emppObj );
		 
		 for(int i = 1;!emppObj.isConnected();i++)
	     {
	            try 
	            {
	            	logMan.printLogInfo("close后,移动通道重连次数:"+i);
	                Thread.sleep( 30*1000 );
	                emppObj.reConnect(listener);
	            }
	            catch (Exception e) 
	            {
	                e.printStackTrace();
	            }
	     }
	     		 
	 }

	 /**
	  * 收到上海【移动】的异常消息
	  */
	 public void OnError( Exception message ) 
	 {
		 logMan.printLogInfo( "Mobile error:" + message.toString() );
		 
		 MobileListener listener = new MobileListener( emppObj );
		 
		 for(int i = 1;!emppObj.isConnected();i++)
	     {
	            try 
	            {
	            	logMan.printLogInfo("error后,移动通道重连次数:"+i);
	                Thread.sleep( 30*1000 );
	                emppObj.reConnect(listener);
	            }
	            catch (Exception e) 
	            {
	                e.printStackTrace();
	            }
	     }	 
		 
	 }

	 /**
	  * 过滤二进制的0
	  * @param bytes
	  * @return
	  */
	 private static byte[] fiterBinaryZero(byte[] bytes) 
	 {
	        byte[] returnBytes = new byte[8];
	        for (int i = 0; i < 8; i++) 
	        {
	            returnBytes[i] = bytes[i];
	        }
	        return returnBytes;
	 }
	 
}

⌨️ 快捷键说明

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