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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cservice.java

?? Sending and receiving of SMS using Java
?? JAVA
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
											{
												duplicate = false;
												for (l = 0; l < tmpList.size(); l++)
												{
													listMsg = (CIncomingMessage) tmpList.get(l);
													if (listMsg.getMpSeqNo() == msg.getMpSeqNo())
													{
														duplicate = true;
														break;
													}
												}
												if (!duplicate) tmpList.add(msg);
												found = true;
												break;
											}
										}
										if (!found)
										{
											tmpList = new LinkedList();
											tmpList.add(msg);
											mpMsgList.add(tmpList);
										}
									}
								}
								else if (isStatusReportMessage(pdu))
								{
									messageList.add(new CStatusReportMessage(pdu, memIndex, atHandler.storageLocations.substring((ml * 2), (ml * 2) + 2)));
									deviceInfo.getStatistics().incTotalIn();
								}
							}
							catch (Exception e)
							{
								if (log != null)
								{
									log.error("*****");
									log.error("Unhandled SMS in inbox, skipping!");
									log.error("Err: " + e.getMessage());
									log.error("*****");
								}
							}
							line = reader.readLine().trim();
							while (line.length() == 0)
								line = reader.readLine().trim();
							if ((limit > 0) && (messageList.size() == limit)) break;
						}
						reader.close();
					}
				}
			}
			else throw new NotConnectedException();
		}
		checkMpMsgList(messageList);
	}

	//@SuppressWarnings("unchecked")
	private void readMessages_TEXT(LinkedList messageList, int messageClass, int limit) throws Exception
	{
		int i, j, memIndex;
		byte[] bytes;
		String response, line, msgText, originator, dateStr, refNo;
		BufferedReader reader;
		StringTokenizer tokens;
		CIncomingMessage msg;
		Calendar cal1 = Calendar.getInstance();
		Calendar cal2 = Calendar.getInstance();

		if (limit < 0) limit = 0;
		synchronized (_SYNC_)
		{
			if (getConnected())
			{
				atHandler.switchToCmdMode();
				for (int ml = 0; ml < (atHandler.storageLocations.length() / 2); ml++)
				{
					if (atHandler.setMemoryLocation(atHandler.storageLocations.substring((ml * 2), (ml * 2) + 2)))
					{
						response = atHandler.listMessages(messageClass);
						response = response.replaceAll("\\s+OK\\s+", "\nOK");
						reader = new BufferedReader(new StringReader(response));
						for (;;)
						{
							line = reader.readLine().trim();
							if (line == null) break;
							line = line.trim();
							if (line.length() > 0) break;
						}
						while (true)
						{
							if (line == null) break;
							line = line.trim();
							if (line.length() <= 0 || line.equalsIgnoreCase("OK")) break;
							i = line.indexOf(':');
							j = line.indexOf(',');
							memIndex = Integer.parseInt(line.substring(i + 1, j).trim());
							tokens = new StringTokenizer(line, ",");
							tokens.nextToken();
							tokens.nextToken();
							if (Character.isDigit(tokens.nextToken().trim().charAt(0)))
							{
								line = line.replaceAll(",,", ", ,");
								tokens = new StringTokenizer(line, ",");
								tokens.nextToken();
								tokens.nextToken();
								tokens.nextToken();
								refNo = tokens.nextToken();
								tokens.nextToken();
								dateStr = tokens.nextToken().replaceAll("\"", "");
								cal1.set(Calendar.YEAR, 2000 + Integer.parseInt(dateStr.substring(0, 2)));
								cal1.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(3, 5)) - 1);
								cal1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8)));
								dateStr = tokens.nextToken().replaceAll("\"", "");
								cal1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(dateStr.substring(0, 2)));
								cal1.set(Calendar.MINUTE, Integer.parseInt(dateStr.substring(3, 5)));
								cal1.set(Calendar.SECOND, Integer.parseInt(dateStr.substring(6, 8)));
								dateStr = tokens.nextToken().replaceAll("\"", "");
								cal2.set(Calendar.YEAR, 2000 + Integer.parseInt(dateStr.substring(0, 2)));
								cal2.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(3, 5)) - 1);
								cal2.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8)));
								dateStr = tokens.nextToken().replaceAll("\"", "");
								cal2.set(Calendar.HOUR_OF_DAY, Integer.parseInt(dateStr.substring(0, 2)));
								cal2.set(Calendar.MINUTE, Integer.parseInt(dateStr.substring(3, 5)));
								cal2.set(Calendar.SECOND, Integer.parseInt(dateStr.substring(6, 8)));

								msg = new CStatusReportMessage(Integer.parseInt(refNo), memIndex, atHandler.storageLocations.substring((ml * 2), (ml * 2) + 2), cal1.getTime(), cal2.getTime());
								if (log != null) log.debug("IN-DTLS: MI:" + msg.getMemIndex());
								messageList.add(msg);
								deviceInfo.getStatistics().incTotalIn();
							}
							else
							{
								line = line.replaceAll(",,", ", ,");
								tokens = new StringTokenizer(line, ",");
								tokens.nextToken();
								tokens.nextToken();
								originator = tokens.nextToken().replaceAll("\"", "");
								tokens.nextToken();
								dateStr = tokens.nextToken().replaceAll("\"", "");
								cal1.set(Calendar.YEAR, 2000 + Integer.parseInt(dateStr.substring(0, 2)));
								cal1.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(3, 5)) - 1);
								cal1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8)));
								dateStr = tokens.nextToken().replaceAll("\"", "");
								cal1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(dateStr.substring(0, 2)));
								cal1.set(Calendar.MINUTE, Integer.parseInt(dateStr.substring(3, 5)));
								cal1.set(Calendar.SECOND, Integer.parseInt(dateStr.substring(6, 8)));
								msgText = reader.readLine().trim();
								bytes = new byte[msgText.length() / 2];
								j = 0;
								for (i = 0; i < msgText.length(); i += 2)
								{
									bytes[j] = Byte.parseByte(msgText.substring(i, i + 2), 16);
									j++;
								}
								msgText = CGSMAlphabet.bytesToString(bytes);
								msg = new CIncomingMessage(cal1.getTime(), originator, msgText, memIndex, atHandler.storageLocations.substring((ml * 2), (ml * 2) + 2));
								if (log != null) log.debug("IN-DTLS: MI:" + msg.getMemIndex());
								messageList.add(msg);
								deviceInfo.getStatistics().incTotalIn();
							}
							line = reader.readLine().trim();
							while (line.length() == 0)
								line = reader.readLine().trim();
						}
						reader.close();
					}
				}
			}
			else throw new NotConnectedException();
		}
	}

	//@SuppressWarnings("unchecked")
	private void checkMpMsgList(LinkedList messageList)
	{
		int k, l, m;
		LinkedList tmpList;
		CIncomingMessage listMsg, mpMsg;
		boolean found;

		mpMsg = null;
		if (log != null) log.debug("CheckMpMsgList(): MAINLIST: " + mpMsgList.size());
		for (k = 0; k < mpMsgList.size(); k++)
		{
			tmpList = (LinkedList) mpMsgList.get(k);
			if (log != null) log.debug("CheckMpMsgList(): SUBLIST[" + k + "]: " + tmpList.size());
			listMsg = (CIncomingMessage) tmpList.get(0);
			found = false;
			if (listMsg.getMpMaxNo() == tmpList.size())
			{
				found = true;
				for (l = 0; l < tmpList.size(); l++)
					for (m = 0; m < tmpList.size(); m++)
					{
						listMsg = (CIncomingMessage) tmpList.get(m);
						if (listMsg.getMpSeqNo() == (l + 1))
						{
							if (listMsg.getMpSeqNo() == 1)
							{
								mpMsg = listMsg;
								mpMsg.setMpMemIndex(mpMsg.getMemIndex());
							}
							else
							{
								if (mpMsg != null)
								{
									mpMsg.addText(listMsg.getText());
									mpMsg.setMpSeqNo(listMsg.getMpSeqNo());
									mpMsg.setMpMemIndex(listMsg.getMemIndex());
									if (listMsg.getMpSeqNo() == listMsg.getMpMaxNo())
									{
										mpMsg.setMemIndex(-1);
										messageList.add(mpMsg);
										mpMsg = null;
									}
								}
							}
							break;
						}
					}
				tmpList.clear();
				tmpList = null;
			}
			if (found)
			{
				mpMsgList.remove(k);
				k--;
			}
		}
	}

	/**
	 * Sends an SMS message from the GSM modem.
	 * <p>
	 * This method actually wraps the message in a list and calls #sendMessage(List) that does the job.
	 * 
	 * @param message
	 *            The message to be sent.
	 * @throws NotConnectedException
	 *             Either connect() is not called or modem has been disconnected.
	 * @see CService#sendMessage(LinkedList)
	 * @see CService#readMessages(LinkedList, int)
	 */
	//@SuppressWarnings("unchecked")
	public void sendMessage(COutgoingMessage message) throws Exception
	{
		LinkedList messageList;

		messageList = new LinkedList();
		messageList.add(message);
		sendMessage(messageList);
	}

	/**
	 * Sends a list of messages from the GSM modem.
	 * <p>
	 * The function iterates through the supplied list of COutgoingMessage objects and tries to send them.
	 * <p>
	 * Upon succesful sending, each COutgoingMessage object should have its RefNo and DispatchDate fields set to specific values. Upon failure, the RefNo will be set to 0 and DispatchDate set to null.
	 * 
	 * @param messageList
	 *            A list of COutgoingMessage objects presenting messages that will be sent out.
	 * @throws NotConnectedException
	 *             Either connect() is not called or modem has been disconnected.
	 * @see CService#sendMessage(COutgoingMessage)
	 * @see COutgoingMessage
	 * @see CWapSIMessage
	 * @see CService#readMessages(LinkedList, int)
	 */
	public void sendMessage(LinkedList messageList) throws Exception
	{
		switch (protocol)
		{
			case Protocol.PDU:
				sendMessage_PDU(messageList);
				break;
			case Protocol.TEXT:
				sendMessage_TEXT(messageList);
				break;
		}
	}

	private void sendMessage_PDU(LinkedList messageList) throws Exception
	{
		COutgoingMessage message;
		int i, j, refNo;
		String pdu;

		if (getConnected())
		{
			synchronized (_SYNC_)
			{
				atHandler.keepGsmLinkOpen();
			}
			for (i = 0; i < messageList.size(); i++)
			{
				message = (COutgoingMessage) messageList.get(i);
				if (!message.isBig())
				{
					pdu = message.getPDU(smscNumber, 0, 0);
					j = pdu.length();
					j /= 2;
					if (smscNumber == null) ; // Do nothing on purpose!
					else if (smscNumber.length() == 0) j--;
					else
					{
						int smscNumberLen = smscNumber.length();
						if (smscNumber.charAt(0) == '+') smscNumberLen--;
						if (smscNumberLen % 2 != 0) smscNumberLen++;
						int smscLen = (2 + smscNumberLen) / 2;
						j = j - smscLen - 1;
					}
					synchronized (_SYNC_)
					{
						refNo = atHandler.sendMessage(j, pdu, null, null);
					}
					if (refNo >= 0)
					{
						message.setRefNo(refNo);
						message.dispatchDate = new Date();
						deviceInfo.getStatistics().incTotalOut();
					}
					else if (refNo == -2)
					{
						disconnect();
						break;
					}
					else message.dispatchDate = null;
				}
				else
				{
					for (int partNo = 1; partNo <= message.getNoOfParts(); partNo++)
					{
						pdu = message.getPDU(smscNumber, outMpRefNo, partNo);
						j = pdu.length();
						j /= 2;
						if (smscNumber == null) ; // Do nothing on purpose!
						else if (smscNumber.length() == 0) j--;
						else
						{
							int smscNumberLen = smscNumber.length();
							if (smscNumber.charAt(0) == '+') smscNumberLen--;
							if (smscNumberLen % 2 != 0) smscNumberLen++;
							int smscLen = (2 + smscNumberLen) / 2;
							j = j - smscLen - 1;
						}
						synchronized (_SYNC_)
						{
							refNo = atHandler.sendMessage(j, pdu, null, null);
						}
						if (refNo >= 0)
						{
							message.setRefNo(refNo);
							message.dispatchDate = new Date();
							deviceInfo.getStatistics().incTotalOut();
						}
						else if (refNo == -2)
						{
							disconnect();
							break;
						}
						else message.dispatchDate = null;
					}
					outMpRefNo = (outMpRefNo + 1) % 65536;
				}
			}
		}
		else throw new NotConnectedException();
	}

	private void sendMessage_TEXT(LinkedList messageList) throws Exception
	{
		COutgoingMessage message;
		byte[] bytes;
		StringBuffer hexText = new StringBuffer();
		int i, j, n, refNo;

		if (getConnected())
		{
			for (i = 0; i < messageList.size(); i++)
			{
				hexText.delete(0, hexText.length());
				message = (COutgoingMessage) messageList.get(i);
				bytes = new byte[400];
				n = CGSMAlphabet.stringToBytes(message.getText(), bytes);
				for (j = 0; j < n; j++)
					hexText.append(Integer.toHexString(bytes[j]).toUpperCase());
				synchronized (_SYNC_)
				{
					refNo = atHandler.sendMessage(0, null, message.getRecipient(), hexText.toString());
				}
				if (refNo >= 0)
				{
					message.setRefNo(refNo);
					message.dispatchDate = new Date();
					deviceInfo.getStatistics().incTotalOut();
				}
				else message.dispatchDate = null;
			}
		}
		else throw new NotConnectedException();
	}

	protected void deleteMessage(int memIndex, String memLocation) throws Exception
	{
		synchronized (_SYNC_)
		{
			if (getConnected()) atHandler.deleteMessage(memIndex, memLocation);
			else throw new NotConnectedException();
		}
	}

	/**
	 * Deletes a message from the modem's memory.
	 * <p>
	 * <strong>Warning</strong>: Do not pass invalid CIncomingMessage objects to this call - You may corrupt your modem's storage!
	 * <p>
	 * Delete operations are irreversible.
	 * 
	 * @param message
	 *            The CIncomingMessage object previously read with readMessages() call.
	 * @throws NotConnectedException
	 *             Either connect() is not called or modem has been disconnected.
	 * @see CIncomingMessage
	 * @see CService#readMessages(LinkedList, int)
	 */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国偷自产一区二区开放时间| 欧美三级在线播放| 亚洲国产日韩一级| 国产欧美日韩另类视频免费观看| 欧美视频日韩视频在线观看| 国产剧情在线观看一区二区| 亚洲国产精品久久人人爱蜜臀| 国产午夜精品一区二区三区视频| 欧美久久久影院| 97精品久久久久中文字幕| 激情综合网天天干| 天天免费综合色| 亚洲精品亚洲人成人网 | 久久综合色天天久久综合图片| 91女神在线视频| 国产成人av一区二区三区在线 | 亚洲线精品一区二区三区| 国产蜜臀97一区二区三区| 欧美一区二区二区| 欧美日韩一区二区三区在线| 99精品视频在线免费观看| 国产激情91久久精品导航| 蜜臀av亚洲一区中文字幕| 亚洲 欧美综合在线网络| 亚洲一区在线看| 夜夜嗨av一区二区三区网页| 亚洲欧美综合在线精品| 国产欧美日韩精品在线| 国产亚洲精品福利| 久久久不卡网国产精品二区| 欧美电影免费观看高清完整版 | 中文字幕亚洲不卡| 中文字幕高清一区| 国产精品视频第一区| 国产日韩欧美在线一区| 国产色婷婷亚洲99精品小说| 久久夜色精品一区| 国产丝袜美腿一区二区三区| 久久色中文字幕| 国产日韩精品一区| 日本一区二区三区视频视频| 久久久久久一级片| 欧美韩国日本不卡| 亚洲人一二三区| 一级女性全黄久久生活片免费| 一区二区免费视频| 亚洲国产欧美在线| 美女视频黄久久| 国内精品视频一区二区三区八戒| 国产精品一区二区久激情瑜伽| 国产一区啦啦啦在线观看| 国产一区二区调教| 成人性生交大片免费看中文网站| 成人黄色av电影| 色综合中文字幕国产 | 国产麻豆欧美日韩一区| 国产69精品久久99不卡| 91在线一区二区| 欧美精品tushy高清| 2021国产精品久久精品| 欧美激情一区二区三区全黄| 亚洲精品日日夜夜| 日本成人中文字幕| 国产成人在线视频网址| 91视频国产资源| 欧美日韩黄色一区二区| 2022国产精品视频| 悠悠色在线精品| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品一区二区三区乱码| 91麻豆swag| 欧美一二三区精品| 国产精品美女久久久久av爽李琼| 亚洲免费在线观看| 麻豆精品视频在线观看免费| 成人中文字幕合集| 欧美日韩高清一区二区三区| 久久网站最新地址| 亚洲精品免费在线播放| 蜜臀国产一区二区三区在线播放 | 亚洲视频免费在线观看| 午夜视频一区二区| 成人中文字幕电影| 91精品国产aⅴ一区二区| 欧美激情一区二区三区不卡| 婷婷久久综合九色综合伊人色| 国产乱子轮精品视频| 在线精品视频一区二区| 国产亚洲欧美中文| 亚洲成人在线观看视频| 懂色av中文字幕一区二区三区| 欧美日韩午夜精品| 国产日韩欧美在线一区| 日本人妖一区二区| 99精品视频在线观看| 26uuu国产日韩综合| 亚洲一区二区三区四区在线| 国产精品亚洲午夜一区二区三区| 欧美另类久久久品| 中文字幕一区视频| 韩国女主播成人在线| 精品视频免费在线| 国产精品传媒在线| 狠狠色狠狠色综合系列| 欧美三级电影一区| 亚洲柠檬福利资源导航| 国产成人精品影院| 精品久久一区二区三区| 婷婷综合久久一区二区三区| 99精品在线免费| 国产农村妇女毛片精品久久麻豆| 蜜桃av一区二区在线观看| 欧洲人成人精品| 亚洲色图欧美激情| 成人精品在线视频观看| 亚洲精品一区二区三区福利| 日韩不卡一区二区| 欧美日韩精品一区视频| 亚洲精品成人a在线观看| proumb性欧美在线观看| 国产女同性恋一区二区| 国内成人精品2018免费看| 欧美另类久久久品| 丝袜美腿亚洲色图| 精品视频一区三区九区| 亚洲一区二区三区爽爽爽爽爽| 91丨九色丨黑人外教| 国产精品久久久久毛片软件| 成人综合日日夜夜| 一区在线观看免费| 成人av电影在线观看| 国产精品素人一区二区| 国产91富婆露脸刺激对白| 亚洲国产精品国自产拍av| 国产·精品毛片| 国产精品的网站| 91一区一区三区| 一区二区高清视频在线观看| 色88888久久久久久影院野外| 亚洲激情中文1区| 欧美性猛片aaaaaaa做受| 亚洲国产aⅴ天堂久久| 欧美日韩中文一区| 日本午夜一区二区| 欧美精品一区二区三区高清aⅴ | 亚洲一区中文日韩| 欧美日本视频在线| 免费成人深夜小野草| 久久久精品免费网站| 成人理论电影网| 亚洲激情成人在线| 欧美久久久影院| 激情综合一区二区三区| 国产精品拍天天在线| 日本乱人伦aⅴ精品| 日本三级亚洲精品| 久久噜噜亚洲综合| 99精品热视频| 午夜精品久久一牛影视| 精品三级在线看| 不卡影院免费观看| 亚洲一区电影777| 欧美一区日韩一区| 国产精品996| 亚洲九九爱视频| 日韩一级大片在线| 成人中文字幕在线| 亚洲成人av免费| 久久久久久久免费视频了| 91丨porny丨首页| 奇米888四色在线精品| 欧美高清在线一区| 制服丝袜日韩国产| 国产aⅴ综合色| 亚洲高清免费观看高清完整版在线观看| 制服视频三区第一页精品| 国产成人精品一区二区三区四区 | 激情文学综合丁香| 国产精品不卡在线观看| 717成人午夜免费福利电影| 国产精品自在欧美一区| 一区二区国产视频| 久久久99久久精品欧美| 91福利社在线观看| 国产乱码一区二区三区| 亚洲午夜在线电影| 亚洲国产高清aⅴ视频| 91精品国产全国免费观看 | 成人理论电影网| 琪琪一区二区三区| 亚洲欧美日韩中文播放| 日韩精品最新网址| 欧美日韩一区在线| www.激情成人| 国产伦理精品不卡| 毛片av中文字幕一区二区| 一区二区成人在线观看| 国产欧美在线观看一区| 日韩午夜中文字幕| 欧美怡红院视频|