亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? inboundmessage.java

?? 發送短信 接收短信 多種接口com/net/modem 開發庫
?? JAVA
字號:
// SMSLib for Java v3
// A Java API library for sending and receiving SMS via a GSM modem
// or other supported gateways.
// Web Site: http://www.smslib.org
//
// Copyright (C) 2002-2009, Thanasis Delenikas, Athens/GREECE.
// SMSLib is distributed under the terms of the Apache License version 2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package org.smslib;

import java.io.UnsupportedEncodingException;
import java.util.*;
import org.ajwcc.pduUtils.gsm3040.*;

/**
 * Class representing an inbound sms message.
 */
public class InboundMessage extends Message
{
	private static final long serialVersionUID = 5506740746605374709L;

	/**
	 * Enumeration representing various message classes.
	 */
	public enum MessageClasses
	{
		/**
		 * Already-read messages.
		 */
		READ,
		/**
		 * Not-read messages.
		 */
		UNREAD,
		/**
		 * All messages, whether read or unread.
		 */
		ALL
	}

	private String originator;

	private int memIndex;

	private String memLocation;

	private int mpRefNo;

	private int mpMaxNo;

	private int mpSeqNo;

	private String mpMemIndex;

	protected String ud;

	protected String udh;

	public InboundMessage(Date date, String myOriginator, String text, int myMemIndex, String myMemLocation)
	{
		super(MessageTypes.INBOUND, date, text);
		setOriginator(myOriginator);
		setMemIndex(myMemIndex);
		setMemLocation(myMemLocation);
		setMpRefNo(0);
		setMpMaxNo(0);
		setMpSeqNo(0);
		setMpMemIndex(-1);
	}

	public InboundMessage(MessageTypes type, int myMemIndex, String myMemLocation)
	{
		super(type, null, null);
		setOriginator("");
		setMemIndex(myMemIndex);
		setMemLocation(myMemLocation);
		setMpRefNo(0);
		setMpMaxNo(0);
		setMpSeqNo(0);
		setMpMemIndex(-1);
	}

	public InboundMessage(SmsDeliveryPdu pdu, int myMemIndex, String myMemLocation)
	{
		super(MessageTypes.INBOUND, null, null);
		setMemIndex(myMemIndex);
		setMemLocation(myMemLocation);
		setMpRefNo(0);
		setMpMaxNo(0);
		setMpSeqNo(0);
		setMpMemIndex(-1);
		int dcsEncoding = PduUtils.extractDcsEncoding(pdu.getDataCodingScheme());
		switch (dcsEncoding)
		{
			case PduUtils.DCS_ENCODING_7BIT:
				setEncoding(MessageEncodings.ENC7BIT);
				break;
			case PduUtils.DCS_ENCODING_8BIT:
				setEncoding(MessageEncodings.ENC8BIT);
				break;
			case PduUtils.DCS_ENCODING_UCS2:
				setEncoding(MessageEncodings.ENCUCS2);
				break;
			default:
				throw new RuntimeException("Unknown encoding value: " + dcsEncoding);
		}
		this.setOriginator(pdu.getAddress());
		this.setDate(pdu.getTimestamp());
		extractData(pdu);
		if (pdu.isConcatMessage())
		{
			this.setMpRefNo(pdu.getMpRefNo());
			this.setMpMaxNo(pdu.getMpMaxNo());
			this.setMpSeqNo(pdu.getMpSeqNo());
		}
		if (pdu.isPortedMessage())
		{
			this.setDstPort(pdu.getDestPort());
			this.setSrcPort(pdu.getSrcPort());
		}
		if (pdu.hasTpUdhi())
		{
			this.udh = PduUtils.bytesToPdu(pdu.getUDHData());
		}
		this.ud = PduUtils.bytesToPdu(pdu.getUserDataAsBytes());
		
	    // NEW
		if (getEncoding()==MessageEncodings.ENC7BIT)
		{
		    // check if the last byte of the udData is 1b
		        // but the septets need to be expanded
		    byte[] temp = PduUtils.encodedSeptetsToUnencodedSeptets(pdu.getUDData());
		    
		    if (temp.length == 0)
		    {
		        endsWithMultiChar = false;
		    }
		    else if (temp[temp.length-1]==0x1b)
		    {
		        endsWithMultiChar = true;
		    }
		}
	}

	// NEW
	private boolean endsWithMultiChar;
	
	public void setEndsWithMultiChar(boolean b)
	{
	    endsWithMultiChar = b;
	}
	
	public boolean getEndsWithMultiChar()
	{
	    return endsWithMultiChar;
	}

	/**
	 * Returns the originator of this message.
	 * 
	 * @return The originator of this message.
	 */
	public String getOriginator()
	{
		return this.originator;
	}

	void setOriginator(String myOriginator)
	{
		this.originator = myOriginator;
	}

	/**
	 * Returns the GSM Modem/Phone memory index from which this message was
	 * read.
	 * 
	 * @return The memory index.
	 * @see #getMemLocation()
	 */
	public int getMemIndex()
	{
		return this.memIndex;
	}

	public void setMemIndex(int myMemIndex)
	{
		this.memIndex = myMemIndex;
	}

	/**
	 * Returns the GSM Modem/Phone memory location from which this message was
	 * read.
	 * 
	 * @return The memory location identifier.
	 * @see #getMemIndex()
	 */
	public String getMemLocation()
	{
		return this.memLocation;
	}

	public void setMemLocation(String myMemLocation)
	{
		this.memLocation = myMemLocation;
	}

	public int getMpMaxNo()
	{
		return this.mpMaxNo;
	}

	public void setMpMaxNo(int myMpMaxNo)
	{
		this.mpMaxNo = myMpMaxNo;
	}

	public String getMpMemIndex()
	{
		return this.mpMemIndex;
	}

	public void setMpMemIndex(int myMpMemIndex)
	{
		if (myMpMemIndex == -1) this.mpMemIndex = "";
		else this.mpMemIndex += (this.mpMemIndex.length() == 0 ? "" : ",") + myMpMemIndex;
	}

	public int getMpRefNo()
	{
		return this.mpRefNo;
	}

	public void setMpRefNo(int myMpRefNo)
	{
		this.mpRefNo = myMpRefNo;
	}

	public int getMpSeqNo()
	{
		return this.mpSeqNo;
	}

	public void setMpSeqNo(int myMpSeqNo)
	{
		this.mpSeqNo = myMpSeqNo;
	}

	@Override
	public String toString()
	{
		String str = "";
		str += "===============================================================================";
		str += "\n";
		str += "<< " + getClass().getSimpleName() + " >>";
		str += "\n";
		str += "-------------------------------------------------------------------------------";
		str += "\n";
		str += " Gateway Id: " + getGatewayId();
		str += "\n";
		str += " Encoding: " + (getEncoding() == MessageEncodings.ENC7BIT ? "7-bit" : (getEncoding() == MessageEncodings.ENC8BIT ? "8-bit" : "UCS2 (Unicode)"));
		str += "\n";
		str += " Date: " + getDate();
		str += "\n";
		if (this instanceof InboundBinaryMessage)
		{
			InboundBinaryMessage binaryMessage = (InboundBinaryMessage) this;
			if (binaryMessage.getDataBytes() != null)
			{
				String binaryString = PduUtils.bytesToPdu((binaryMessage).getDataBytes());
				str += " Binary: " + binaryString;
				str += "\n";
			}
			else
			{
				str += " Binary: null";
				str += "\n";
			}
			if (this instanceof InboundEncryptedMessage)
			{
				try
				{
					InboundEncryptedMessage encryptedMessage = (InboundEncryptedMessage) this;
					str += " Message is **encrypted**, decrypted text: " + encryptedMessage.getDecryptedText() + "\n";
				}
				catch (Exception e)
				{
					str += " Could not decrypt message: " + e.getMessage() + "\n";
				}
			}
		}
		else
		{
			str += " Text: " + getText();
			str += "\n";
			try
			{
				str += " PDU data: " + getPduUserData();
				str += "\n";
			}
			catch (Exception e)
			{
				str += " PDU data: <cannot extract properly, udh present>";
				str += "\n";
			}
		}
		str += " Originator: " + this.originator;
		str += "\n";
		if (this instanceof StatusReportMessage)
		{
			str += " Original Recipient: " + ((StatusReportMessage) this).getRecipient();
			str += "\n";
			str += " Delivery Status: " + ((StatusReportMessage) this).getStatus();
			str += "\n";
			str += " SMSC Ref No: " + ((StatusReportMessage) this).getRefNo();
			str += "\n";
		}
		str += " Memory Index: " + getMemIndex();
		str += "\n";
		str += " Multi-part Memory Index: " + getMpMemIndex();
		str += "\n";
		str += " Memory Location: " + getMemLocation();
		str += "\n";
		str += " Source / Destination Ports: " + getSrcPort() + " / " + getDstPort();
		str += "\n";
		str += "===============================================================================";
		str += "\n";
		return str;
	}

	protected void extractData(SmsDeliveryPdu pdu)
	{
		// binary messages belong in the InboundBinaryMessage subclass not here
		if (pdu.isBinary()) throw new RuntimeException("Trying to apply a binary pdu to an InboundMessage");
		this.setText(pdu.getDecodedText());
	}

	@Override
	public String getPduUserData()
	{
		if ((this.udh != null) && (getEncoding() == MessageEncodings.ENC7BIT)) { throw new RuntimeException("getPduUserData() not supported for 7-bit messages with UDH"); }
		return this.ud;
	}

	@Override
	public String getPduUserDataHeader()
	{
		// NOTE: when for a concat message
		// this will only return the UDH of the FIRST part of the
		// multi-part message since subsequent parts are added
		// via addText() or addDataBytes()
		return this.udh;
	}

	@Override
	public void addText(String s) throws UnsupportedEncodingException
	{
		super.addText(s);
		// NOTE: adjust stored ud data
		// only for UCS2 since multi-part 7-bit is not supported 
		// for the getPduUserData() and 8-bit encodings are handled 
		// in a different class
		if (getEncoding() == MessageEncodings.ENCUCS2)
		{
			this.ud = this.ud + PduUtils.bytesToPdu(s.getBytes("UTF-16BE"));
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产精品一区二区夜夜嗨| 色婷婷久久一区二区三区麻豆| 91精品国产一区二区三区蜜臀| 日日嗨av一区二区三区四区| 日韩色视频在线观看| 韩国欧美国产1区| 2021中文字幕一区亚洲| 成人国产精品免费观看| 亚洲欧洲色图综合| 欧美日韩亚洲综合在线| 日本欧美韩国一区三区| 欧美经典一区二区三区| 一道本成人在线| 麻豆91免费看| 国产精品久久看| 欧美色图片你懂的| 国产综合一区二区| 亚洲激情欧美激情| 欧美电影免费观看高清完整版在线 | 99re6这里只有精品视频在线观看| 中文字幕五月欧美| 在线成人高清不卡| 国产成人亚洲综合a∨猫咪| 亚洲美女视频一区| 欧美电影免费观看高清完整版在| 风流少妇一区二区| 亚洲www啪成人一区二区麻豆| 欧美大胆人体bbbb| 99久久精品99国产精品| 另类小说色综合网站| 亚洲日穴在线视频| 欧美成人一区二区| 色综合久久综合网欧美综合网| 日本91福利区| 中文字幕一区二区三区精华液| 91.com视频| 一本一道综合狠狠老| 极品瑜伽女神91| 亚洲午夜一二三区视频| 国产午夜亚洲精品午夜鲁丝片| 欧美午夜影院一区| 成人一道本在线| 麻豆视频一区二区| 亚洲成在人线在线播放| 亚洲国产精品精华液ab| 欧美一区二区黄色| 欧美影视一区在线| 国产一区二区三区不卡在线观看| 欧美一区二区久久| 成人一区二区视频| 成人午夜免费视频| 中文字幕免费观看一区| 69av一区二区三区| 亚洲电影中文字幕在线观看| 亚洲午夜三级在线| www.在线欧美| 国产亚洲欧洲997久久综合| 偷拍一区二区三区四区| caoporn国产精品| 精品久久久久久久久久久久包黑料 | 亚洲超碰精品一区二区| 精品在线观看免费| 欧美天天综合网| 中文字幕在线不卡视频| 国产一区三区三区| 欧美偷拍一区二区| 亚洲国产视频一区二区| 精品一区免费av| 色狠狠av一区二区三区| 国产无遮挡一区二区三区毛片日本| 依依成人精品视频| jiyouzz国产精品久久| 久久久久久久电影| 国产福利不卡视频| 国产欧美久久久精品影院| 国产一区二区三区精品视频| 久久久亚洲精品石原莉奈 | 国产精品萝li| 国产一区二区三区免费在线观看| 欧美日韩黄视频| 亚洲免费观看高清完整版在线| 久久91精品国产91久久小草| 日韩精品一区二区三区老鸭窝| 久久精品国内一区二区三区 | 国产伦精品一区二区三区视频青涩| 日韩午夜激情免费电影| 伦理电影国产精品| 久久久一区二区三区捆绑**| 国产在线国偷精品免费看| 欧美国产视频在线| 国产精品1区2区3区| 国产人妖乱国产精品人妖| 激情图区综合网| 久久欧美一区二区| 国产在线一区二区综合免费视频| 久久精品一二三| 波多野结衣在线一区| 国产午夜精品一区二区| 国产精品亚洲视频| ...av二区三区久久精品| 99国产一区二区三精品乱码| 依依成人精品视频| 精品国产三级电影在线观看| www.日韩av| 蜜桃91丨九色丨蝌蚪91桃色| 欧美国产禁国产网站cc| 欧美久久久一区| 国产电影一区二区三区| 亚洲精品免费视频| 欧美一区二区美女| 色天使久久综合网天天| 麻豆一区二区三| 日韩美女视频19| 欧美裸体bbwbbwbbw| 狠狠色狠狠色综合日日91app| 日本一区二区三区视频视频| 99精品欧美一区二区三区小说 | 无吗不卡中文字幕| 精品久久久网站| aaa欧美大片| 日本成人在线不卡视频| 国产精品污www在线观看| 日本韩国一区二区三区| 美女精品自拍一二三四| 1区2区3区国产精品| 欧美日韩在线播放一区| 国产精品夜夜爽| 亚洲成人av一区二区三区| 久久久www成人免费无遮挡大片| 色综合久久六月婷婷中文字幕| 久久99久久99小草精品免视看| 久久久精品国产99久久精品芒果 | av电影在线不卡| 亚洲国产综合91精品麻豆 | 色婷婷av一区二区三区之一色屋| 美女久久久精品| 亚洲久本草在线中文字幕| 日韩午夜激情电影| 一本在线高清不卡dvd| 成人深夜福利app| 亚洲成人在线网站| 中文一区在线播放| 精品国一区二区三区| 欧美最猛黑人xxxxx猛交| 94-欧美-setu| 国产曰批免费观看久久久| 日韩国产成人精品| 免费在线观看一区二区三区| 日本欧美大码aⅴ在线播放| 亚洲国产视频直播| 亚洲成人av中文| 日本女人一区二区三区| 日本麻豆一区二区三区视频| 日韩av中文字幕一区二区| 青娱乐精品在线视频| 婷婷久久综合九色国产成人| 丝袜美腿亚洲一区二区图片| 一区二区三区美女视频| 亚洲精品欧美综合四区| 亚洲第一精品在线| 蜜桃av一区二区在线观看| 国内精品嫩模私拍在线| 国产精品主播直播| 成av人片一区二区| 91蝌蚪porny成人天涯| 91网上在线视频| 色94色欧美sute亚洲线路一久| av电影在线观看一区| 99国产精品久久久| 不卡免费追剧大全电视剧网站| 成人激情动漫在线观看| 国产91色综合久久免费分享| 国产成人精品www牛牛影视| 成人小视频在线观看| 欧美性色黄大片| 91麻豆精品国产综合久久久久久| 欧美日韩免费在线视频| 3atv在线一区二区三区| 久久亚洲欧美国产精品乐播 | 日韩高清在线观看| 国产主播一区二区| 在线一区二区视频| 精品国产百合女同互慰| 一区免费观看视频| 久久国产精品99久久久久久老狼| 国产资源在线一区| 欧美性受极品xxxx喷水| 精品国产一区二区在线观看| 亚洲乱码中文字幕| 韩国视频一区二区| 欧洲视频一区二区| 日韩一区二区三区电影在线观看| 欧美成人免费网站| 亚洲人成网站在线| 五月天一区二区| av电影在线观看完整版一区二区| 欧美一区二区三区不卡| 国产网站一区二区| 亚洲6080在线| 色94色欧美sute亚洲线路二|