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

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

?? cservice.java

?? JAVA手機短信開發(fā)包
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
					deviceInfo.getStatistics().incTotalIn();
				}
				line = reader.readLine().trim();
			}
			reader.close();
		}
		else throw new NotConnectedException();
	}

	/**
		Send an SMS message from the GSM device. Once connected, you can create a
		COutgoingMessage object with the message you want to send, and pass it
		to this function.
		<br><br>
		<strong>Notes:</strong>
		<ul>
			<li>If you have set a phonebook, you can create the COutgoingMessage
				object with a nickname, instead of the actual phone number.</li>
		</ul>

		@param	message	a COutgoingMessage containing the message you wish to send.
		@return  true if sending succeded.
		@see	COutgoingMessage
		@see	CPhoneBook
		@see	CService#sendMessage(LinkedList)
		@see	CService#setPhoneBook(String)
	*/
	public boolean sendMessage(COutgoingMessage message) throws Exception
	{
		LinkedList messageList;
		COutgoingMessage msg;
		boolean result;

		messageList = new LinkedList();
		messageList.add(message);
		sendMessage(messageList);
		return (message.getDispatchDate() != null);
	}


	/**
		Send an series of SMS messages from the GSM device. This method is used
		when you want to send more than one message as a batch. If your GSM device
		support the feature of keeping the GSM link open during message dispatch,
		this method should work faster than calling the sendMessage(COutgoingMessage)
		method many times.
		<br>
		Just create a LinkedList object, add as many COutgoingMessage objects you wish
		and call the method.
		<br><br>
		<strong>Notes:</strong>
		<ul>
			<li>If you have set a phonebook, you can create the COutgoingMessage
				object with a nickname, instead of the actual phone number.</li>
		</ul>

		@param	messageList	a LinkedList filled with COutgoingMessage objects.
		@throws NotConnectedException
		@see	COutgoingMessage
		@see	CPhoneBook
		@see	CService#sendMessage(COutgoingMessage)
		@see	CService#setPhoneBook(String)
	*/
	public void sendMessage(LinkedList messageList) throws Exception
	{
		LinkedList outList;
		COutgoingMessage message;
		int i, j;
		String pdu;

		if (getConnected())
		{
			if (phoneBook.isLoaded()) outList = phoneBook.expandPhoneBookEntries(messageList);
			else outList = messageList;
			atHandler.keepGsmLinkOpen();
			for (i = 0; i < outList.size(); i ++)
			{
				message = (COutgoingMessage) outList.get(i);
				pdu = message.getPDU(smscNumber);
				j = pdu.length();
				j /= 2;
				if (smscNumber == null) ;
				else if (smscNumber.length() == 0) j --;
				else
				{
					j -= ((smscNumber.length() - 1) / 2);
					j -= 2;
				}
				if (atHandler.sendMessage(j, pdu))
				{
					message.setDispatchDate(new Date());
					deviceInfo.getStatistics().incTotalOut();
				}
				else message.setDispatchDate(null);
			}
		}
		else throw new NotConnectedException();
	}

	/**
		Deletes an SMS message from the GSM device memory.
		<br><br>
		<strong>Notes:</strong>
		<ul>
			<li>A deleted message cannot be recovered.</li>
			<li>It is highly recommended to use the other form of the deleteMessage()
				method.</li>
		</ul>

		@param	memIndex	the memory index of the GSM device's memory from where
				the message (if there is any message there) should be deleted.
		@return  True if delete operation succeded.
		@throws NotConnectedException
		@see	CService#deleteMessage(CIncomingMessage)
	*/
	public boolean deleteMessage(int memIndex) throws Exception
	{
		String response;

		if (getConnected())
		{
			if (memIndex > 0)	return atHandler.deleteMessage(memIndex);
			else return false;
		}
		else throw new NotConnectedException();
	}

	/**
		Deletes an SMS message from the GSM device memory.
		<br><br>
		<strong>Notes:</strong>
		<ul>
			<li>A deleted message cannot be recovered.</li>
		</ul>

		@param	message	a valid CIncomingMessage object, i.e. an object which is
				previously read with readMessages() from the GSM device.
		@return  True if delete operation succeded.
		@throws NotConnectedException
		@see	CIncomingMessage
		@see	CService#deleteMessage(int)
	*/
	public boolean deleteMessage(CIncomingMessage message) throws Exception
	{
		return deleteMessage(message.getMemIndex());
	}

	/**
		Sets the preferred message storage of the GSM device to SIM memory.

		@return  true if the change of preferred message storage succeded.
	*/
	public boolean setStorageSIM() throws Exception
	{
		return atHandler.setStorageSIM();
	}

	/**
		Sets the preferred message storage of the GSM device to build-in memory.

		@return  true if the change of preferred message storage succeded.
	*/
	public boolean setStorageMEM() throws Exception
	{
		return atHandler.setStorageMEM();
	}

	/**
		Refreshes the GSM device specific information. This method is called once during
		connection. Its up to the developer to call it periodically in order to get the latest
		information.

		Note: Information about Manufacturer, Model, SerialNo, IMSI, S/W Version are
		refreshed only once, since they don't change during a session.

		@see	CDeviceInfo
		@see	CService#connect()
		@see	CService#getDeviceInfo()
	*/
	public void refreshDeviceInfo() throws Exception
	{
		if (getConnected())
		{
			if (deviceInfo.manufacturer.length() == 0) deviceInfo.manufacturer = getManufacturer();
			if (deviceInfo.model.length() == 0) deviceInfo.model = getModel();
			if (deviceInfo.serialNo.length() == 0) deviceInfo.serialNo = getSerialNo();
			if (deviceInfo.imsi.length() == 0) deviceInfo.imsi = getImsi();
			if (deviceInfo.swVersion.length() == 0) deviceInfo.swVersion = getSwVersion();
			deviceInfo.batteryLevel = getBatteryLevel();
			deviceInfo.signalLevel = getSignalLevel();
		}
		else throw new NotConnectedException();
	}

	private String getManufacturer() throws Exception
	{
		String response;
		StringTokenizer tokens;

		String whatToDiscard;

		response = atHandler.getManufacturer();
		if (response.indexOf("OK") > -1)
		{
			tokens = new StringTokenizer(response, "\r");
			return tokens.nextToken();
		}
		else return VALUE_NOT_REPORTED;
	}

	private String getModel() throws Exception
	{
		String response;
		StringTokenizer tokens;

		String whatToDiscard;

		response = atHandler.getModel();
		if (response.indexOf("OK") > -1)
		{
			tokens = new StringTokenizer(response, "\r");
			return tokens.nextToken();
		}
		else return VALUE_NOT_REPORTED;
	}

	private String getSerialNo() throws Exception
	{
		String response;
		StringTokenizer tokens;

		String whatToDiscard;

		response = atHandler.getSerialNo();
		if (response.indexOf("OK") > -1)
		{
			tokens = new StringTokenizer(response, "\r");
			return tokens.nextToken();
		}
		else return VALUE_NOT_REPORTED;
	}

	private String getImsi() throws Exception
	{
		String response;
		StringTokenizer tokens;

		String whatToDiscard;

		response = atHandler.getImsi();
		if (response.indexOf("OK") > -1)
		{
			tokens = new StringTokenizer(response, "\r");
			return tokens.nextToken();
		}
		else return VALUE_NOT_REPORTED;
	}

	private String getSwVersion() throws Exception
	{
		String response;
		StringTokenizer tokens;

		String whatToDiscard;

		response = atHandler.getSwVersion();
		if (response.indexOf("OK") > -1)
		{
			tokens = new StringTokenizer(response, "\r");
			return tokens.nextToken();
		}
		else return VALUE_NOT_REPORTED;
	}

	private int getBatteryLevel() throws Exception
	{
		String response;
		StringTokenizer tokens;

		String whatToDiscard;

		response = atHandler.getBatteryLevel();
		if (response.indexOf("OK") > -1)
		{
			tokens = new StringTokenizer(response, "\r:,");
			tokens.nextToken(); tokens.nextToken();
			return Integer.parseInt(tokens.nextToken());
		}
		else return 0;
	}

	private int getSignalLevel() throws Exception
	{
		String response;
		StringTokenizer tokens;

		String whatToDiscard;

		response = atHandler.getSignalLevel();
		if (response.indexOf("OK") > -1)
		{
			tokens = new StringTokenizer(response, "\r:,");
			tokens.nextToken();
			return (Integer.parseInt(tokens.nextToken().trim()) * 100 / 31);
		}
		else return 0;
	}

	/**
		Checks if the message is SMS-DELIVER.

		@param pdu the message pdu
		@return true if the message is SMS-DELIVER
	*/
	private boolean isIncomingMessage(String pdu)
	{
		int index, i;

		i = Integer.parseInt(pdu.substring(0, 2), 16);
		index = (i + 1) * 2;

		i = Integer.parseInt(pdu.substring(index, index + 2), 16);
		if ((i & 0x03) == 0) return true;
		else return false;
	}

	/**
		Checks if the message is SMS-STATUS-REPORT.

		@param pdu the message pdu
		@return true if the message is SMS-STATUS-REPORT
	*/
	private boolean isStatusReportMessage(String pdu)
	{
		String str;
		int index, i;

		str = pdu.substring(0, 2);
		i = Integer.parseInt(str, 16);
		index = (i + 1) * 2;

		str = pdu.substring(index, index + 2);
		i = Integer.parseInt(str, 16);
		if ((i & 0x02) == 2) return true;
		else return false;
	}

	/**
		Virtual method, called upon receipt of a message (Asynchronous mode only!)
		<br><br>
		<strong>Notes:</strong>
		<ul>
			<li>If you plan to use jSMSEngine API in asynchronous mode, you should
				override this method, making it do your job upon message receipt.</li>
		</ul>

		@param	message the received message.
		@return  return true if you wish the message to be deleted from the GSM device's memory.
					Otherwise false.
		@see	CService#setReceiveMode(int)
	*/
	public @Deprecated boolean received(CIncomingMessage message)
	{
		return false;
	}

	private class CReceiveThread extends Thread
	{
		private boolean stopFlag;
		private boolean stopped;

		public CReceiveThread()
		{
			stopFlag = false;
			stopped = false;
		}

		public void killMe() { stopFlag = true; }
		public boolean killed() { return stopped; }

		public void run()
		{
			LinkedList messageList;

			messageList = new LinkedList();
			while (!stopFlag)
			{
				try { sleep(5000); } catch (Exception e) {}
				if (stopFlag) break;
				if ((getConnected()) && (getReceiveMode() == RECEIVE_MODE_ASYNC))
				{
					messageList.clear();
					try
					{
						readMessages(messageList, CIncomingMessage.CLASS_ALL);
						for (int i = 0; i < messageList.size(); i ++)
						{
							CIncomingMessage message = (CIncomingMessage) messageList.get(i);
							if (getMessageHandler() == null)
							{
								if (received(message)) deleteMessage(message);
							}
							else
							{
								if (getMessageHandler() != null && getMessageHandler().received(CService.this, message)) deleteMessage(message);
							}

						}
					}
					catch (Exception e)
					{
						e.printStackTrace();
					}
				}
			}
			stopped = true;
		}
	}

	public static void main(String[] args)
	{
		System.out.println("jSMSEngine API.");
		System.out.println("	An open source Java API to process SMS messages from your ");
		System.out.println("	 mobile phone or gsm modem.");
		System.out.println("	This software is distributed under the LGPL license.");
		System.out.println("");
		System.out.println("Copyright (C) 2002-2006, Thanasis Delenikas, Athens / GREECE.");
		System.out.println("Visit http://www.jsmsengine.org for latest information.");
		System.out.println("\n");
		System.out.println(_name + " v" + _version + " { " + _reldate + " }");
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成伊人成综合网小说| 欧美色图激情小说| 欧美激情一区三区| 成人综合在线视频| 国产精品欧美一区二区三区| 国产精品一区二区三区99| 久久久精品影视| 国产不卡视频在线观看| 国产精品久久久久久福利一牛影视| 成人福利电影精品一区二区在线观看| www国产精品av| 成人av网站在线观看| 一区二区三区免费| 制服丝袜国产精品| 国产精品一级片| 亚洲精品水蜜桃| 欧美一区二区在线视频| 日本韩国一区二区三区| 中文乱码免费一区二区 | 日韩精品中午字幕| 狠狠色丁香婷婷综合久久片| 欧美国产日韩亚洲一区| 91成人网在线| 精品一区二区三区视频在线观看 | 日本大胆欧美人术艺术动态| 欧美精品一区二区三区四区 | 精品国产髙清在线看国产毛片| 国产精品一区二区91| 亚洲欧美日本韩国| 日韩一区和二区| 北条麻妃一区二区三区| 亚洲va韩国va欧美va精品| 久久久精品人体av艺术| 欧美中文字幕一区二区三区| 久久爱另类一区二区小说| 自拍偷拍欧美精品| 日韩亚洲国产中文字幕欧美| 91在线免费播放| 久久99精品国产91久久来源| 综合激情成人伊人| 欧美精品一区二区高清在线观看| 91视频免费看| 国产在线播放一区| 爽爽淫人综合网网站| 国产精品久久久久一区| 日韩欧美国产一区在线观看| 一本大道av一区二区在线播放| 久久se精品一区二区| 亚洲另类在线视频| 久久综合五月天婷婷伊人| 在线观看av一区二区| 国产成人av在线影院| 青草av.久久免费一区| 尤物av一区二区| 国产精品无圣光一区二区| 日韩精品一区二区三区视频在线观看| 91丝袜美女网| 成人免费毛片aaaaa**| 经典一区二区三区| 日本vs亚洲vs韩国一区三区二区 | 欧美一级二级三级乱码| 欧美无乱码久久久免费午夜一区| 成人一级视频在线观看| 久久99精品国产麻豆不卡| 日本欧美肥老太交大片| 亚洲国产成人va在线观看天堂| 一区在线中文字幕| 国产精品不卡在线观看| 欧美国产乱子伦| 久久久久国产精品麻豆| 精品国产一区久久| 欧美α欧美αv大片| 日韩一区国产二区欧美三区| 日韩欧美精品在线| 精品国产麻豆免费人成网站| 日韩一级片在线播放| 欧美夫妻性生活| 日本不卡一区二区三区| 亚洲图片自拍偷拍| 亚洲国产一区在线观看| 亚洲国产日韩综合久久精品| 亚洲精品免费一二三区| 亚洲欧美日韩久久| 一区二区三区四区在线免费观看 | 国产精品伦一区| 久久久青草青青国产亚洲免观| 精品少妇一区二区三区在线视频| 精品蜜桃在线看| 久久久国产综合精品女国产盗摄| 久久久久久99精品| 国产亚洲制服色| 欧美国产精品中文字幕| 中文字幕一区av| 亚洲精品视频在线观看免费| 亚洲精品乱码久久久久| 亚洲超碰精品一区二区| 奇米精品一区二区三区在线观看一 | 大胆欧美人体老妇| 99国产精品久久久久久久久久久| 国产成人精品aa毛片| 91网站在线观看视频| 欧美日韩激情在线| 欧美电影免费观看高清完整版在线 | 欧美理论电影在线| 国产视频视频一区| 欧美二区在线观看| 久久久一区二区| 欧美一区二区三区男人的天堂| 成人在线一区二区三区| 日本福利一区二区| 在线观看视频一区二区欧美日韩| 欧美一二区视频| 亚洲欧美一区二区三区极速播放| 成人av免费在线播放| 欧美日韩国产影片| 日韩激情视频在线观看| 欧美日韩成人在线| 高清久久久久久| 一区二区三区在线观看视频 | 久久精品一区八戒影视| 国内精品第一页| 欧美狂野另类xxxxoooo| 亚洲精品一区二区三区福利 | 久久久另类综合| 国产精品久久久久久久久快鸭 | 国产精品麻豆久久久| 日韩一区有码在线| 欧美美女一区二区三区| 7777精品伊人久久久大香线蕉完整版| 51午夜精品国产| 精品久久久久久久久久久久久久久| 7777精品伊人久久久大香线蕉最新版| 日韩一二三区不卡| 亚洲人成7777| 乱一区二区av| 日韩精品专区在线影院重磅| 久久99精品久久久久久| 久久精品这里都是精品| 国产精品一区二区你懂的| 中文字幕av不卡| 久久99国产精品免费网站| 成人激情午夜影院| 制服视频三区第一页精品| 国产精品久久久久久久久晋中| 不卡的av电影在线观看| 樱桃国产成人精品视频| 91精品国产全国免费观看| 91视频一区二区| 久久99精品久久久久久| 九九精品一区二区| 国内久久婷婷综合| 国产一区二区三区久久久| 日韩主播视频在线| 欧美aaaaaa午夜精品| 美女视频一区二区三区| 国产精品一区久久久久| 国产成人精品亚洲午夜麻豆| 日韩av一区二区在线影视| 国产欧美日产一区| 91精品国产欧美一区二区18 | 午夜影院久久久| 国产精品乱码久久久久久| 日韩欧美一区二区视频| 欧美体内she精高潮| 久久精品国产免费看久久精品| 久久色在线视频| 亚洲色图视频网站| 精品日韩一区二区三区免费视频| 麻豆成人久久精品二区三区红 | 免费一级欧美片在线观看| 欧美日韩国产一二三| 五月综合激情网| 亚洲精品午夜久久久| 亚洲成人先锋电影| 亚洲三级小视频| 中文字幕亚洲欧美在线不卡| 精品久久国产字幕高潮| 91麻豆国产精品久久| 一区二区久久久久| 久久一夜天堂av一区二区三区 | 激情综合网av| 国产伦精品一区二区三区视频青涩 | 日韩精品视频网站| 污片在线观看一区二区| 99久久精品一区二区| 日韩亚洲欧美成人一区| 性做久久久久久久免费看| www.99精品| 2021久久国产精品不只是精品| 亚洲一区二区在线免费观看视频 | 日日摸夜夜添夜夜添国产精品| 亚洲欧洲综合另类在线| 亚洲欧洲国产日本综合| 日韩不卡手机在线v区| 精品一区二区三区免费观看| 国产美女av一区二区三区| 成人性生交大片免费看中文| 欧美精品tushy高清| 成人性视频免费网站| av午夜一区麻豆|