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

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

?? cservice.java

?? Sending and receiving of SMS using Java
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
	public void deleteMessage(CIncomingMessage message) throws Exception
	{
		synchronized (_SYNC_)
		{
			if (message.getMemIndex() >= 0) deleteMessage(message.getMemIndex(), message.getMemLocation());
			else if ((message.getMemIndex() == -1) && (message.getMpMemIndex().length() != 0))
			{
				StringTokenizer tokens = new StringTokenizer(message.getMpMemIndex(), ",");
				while (tokens.hasMoreTokens())
					deleteMessage(Integer.parseInt(tokens.nextToken()), message.getMemLocation());
			}
		}
	}

	/**
	 * Deletes ALL messages of the specified message class.
	 * <p>
	 * Delete operations are irreversible.
	 * 
	 * @param messageClass
	 *            The message class.
	 * @throws NotConnectedException
	 *             Either connect() is not called or modem has been disconnected.
	 * @see CIncomingMessage.MessageClass
	 */
	public void deleteMessages(int messageClass) throws Exception
	{
		LinkedList msgList;

		synchronized (_SYNC_)
		{
			msgList = new LinkedList();
			readMessages(msgList, messageClass);
			for (int i = 0; i < msgList.size(); i++)
				deleteMessage((CIncomingMessage) msgList.get(i));
		}
	}

	/**
	 * Reads (or refreshes) all GSM modem information (like manufacturer, signal level, etc).
	 * <p>
	 * This method is called automatically upon connection. Should you require fresh info, you should call it yourself when you need it.
	 * 
	 * @throws NotConnectedException
	 *             Either connect() is not called or modem has been disconnected.
	 * @see CDeviceInfo
	 */
	public void refreshDeviceInfo() throws Exception
	{
		synchronized (_SYNC_)
		{
			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.gprsStatus = getGprsStatus();
				deviceInfo.batteryLevel = getBatteryLevel();
				deviceInfo.signalLevel = getSignalLevel();
			}
			else throw new NotConnectedException();
		}
	}

	public void catchAsyncException(Exception e)
	{
		if (log != null) log.debug("Unexpected exception", e);
		else e.printStackTrace();
	}

	protected boolean isAlive()
	{
		boolean alive;

		if (!connected) alive = false;
		else try
		{
			alive = atHandler.isAlive();
		}
		catch (Exception e)
		{
			alive = false;
		}
		return alive;
	}

	private boolean waitForNetworkRegistration() throws Exception
	{
		StringTokenizer tokens;
		String response;
		int answer;

		while (true)
		{
			response = atHandler.getNetworkRegistration();
			if (response.indexOf("ERROR") > 0) return false;
			response = response.replaceAll("\\s+OK\\s+", "");
			response = response.replaceAll("\\s+", "");
			response = response.replaceAll("\\+CREG:", "");
			tokens = new StringTokenizer(response, ",");
			tokens.nextToken();
			try
			{
				answer = Integer.parseInt(tokens.nextToken());
			}
			catch (Exception e)
			{
				answer = -1;
			}
			switch (answer)
			{
				case 0:
					if (log != null) log.error("GSM: Auto-registration disabled!");
					throw new OopsException("GSM Network Auto-Registration disabled!");
				case 1:
					if (log != null) log.info("GSM: Registered to home network.");
					return true;
				case 2:
					if (log != null) log.warn("GSM: Not registered, searching for network...");
					break;
				case 3:
					if (log != null) log.error("GSM: Network registration denied!");
					throw new OopsException("GSM Network Registration denied!");
				case 4:
					if (log != null) log.error("GSM: Unknown registration error!");
					throw new OopsException("GSM Network Registration error!");
				case 5:
					if (log != null) log.info("GSM: Registered to foreign network (roaming).");
					return true;
				case -1:
					if (log != null) log.info("GSM: Invalid CREG response.");
					throw new OopsException("GSM: Invalid CREG response.");
			}
			Thread.sleep(1000);
		}
	}

	/**
	 * Send a custom AT command to the modem and returns its response.
	 * 
	 * @param cmd
	 *            The custom AT command
	 * @return The modem response
	 */
	public String sendCustomCmd(String cmd) throws Exception
	{
		synchronized (_SYNC_)
		{
			return atHandler.send(cmd);
		}
	}

	private String getManufacturer() throws Exception
	{
		String response;

		response = atHandler.getManufacturer();
		if (response.matches("\\s*[\\p{ASCII}]*\\s+ERROR(?:: \\d+)?\\s+")) return VALUE_NOT_REPORTED;
		response = response.replaceAll("\\s+OK\\s+", "");
		response = response.replaceAll("\\s+", "");
		return response;
	}

	private String getModel() throws Exception
	{
		String response;

		response = atHandler.getModel();
		if (response.matches("\\s*[\\p{ASCII}]*\\s+ERROR(?:: \\d+)?\\s+")) return VALUE_NOT_REPORTED;
		response = response.replaceAll("\\s+OK\\s+", "");
		response = response.replaceAll("\\s+", "");
		return response;
	}

	private String getSerialNo() throws Exception
	{
		String response;

		response = atHandler.getSerialNo();
		if (response.matches("\\s*[\\p{ASCII}]*\\s+ERROR(?:: \\d+)?\\s+")) return VALUE_NOT_REPORTED;
		response = response.replaceAll("\\s+OK\\s+", "");
		response = response.replaceAll("\\s+", "");
		return response;
	}

	private String getImsi() throws Exception
	{
		return "** MASKED **";
		// IMSI is masked on purpose.
		// Uncomment following code for IMSI to be reported.
		//
		// String response; response = atHandler.getImsi(); if
		// (response.matches("\\s*[\\p{ASCII}]*\\s+ERROR(?:: \\d+)?\\s+"))
		// return VALUE_NOT_REPORTED; response =
		// response.replaceAll("\\s+OK\\s+", ""); response =
		// response.replaceAll("\\s+", ""); return response;
		//
	}

	private String getSwVersion() throws Exception
	{
		String response;

		response = atHandler.getSwVersion();
		if (response.matches("\\s*[\\p{ASCII}]*\\s+ERROR(?:: \\d+)?\\s+")) return VALUE_NOT_REPORTED;
		response = response.replaceAll("\\s+OK\\s+", "");
		response = response.replaceAll("\\s+", "");
		return response;
	}

	private boolean getGprsStatus() throws Exception
	{
		return (atHandler.getGprsStatus().matches("\\s*[\\p{ASCII}]CGATT[\\p{ASCII}]*1\\s*OK\\s*"));
	}

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

		response = atHandler.getBatteryLevel();
		if (response.matches("\\s*[\\p{ASCII}]*\\s+ERROR(?:: \\d+)?\\s+")) return 0;
		response = response.replaceAll("\\s+OK\\s+", "");
		response = response.replaceAll("\\s+", "");
		tokens = new StringTokenizer(response, ":,");
		tokens.nextToken();
		tokens.nextToken();
		return Integer.parseInt(tokens.nextToken());
	}

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

		response = atHandler.getSignalLevel();
		if (response.matches("\\s*[\\p{ASCII}]*\\s+ERROR(?:: \\d+)?\\s+")) return 0;
		response = response.replaceAll("\\s+OK\\s+", "");
		response = response.replaceAll("\\s+", "");
		tokens = new StringTokenizer(response, ":,");
		tokens.nextToken();
		return (Integer.parseInt(tokens.nextToken().trim()) * 100 / 31);
	}

	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;
	}

	private boolean isStatusReportMessage(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 & 0x02) == 2) return true;
		else return false;
	}

	public boolean received(CIncomingMessage message)
	{
		return false;
	}

	private class CKeepAliveThread extends Thread
	{
		private volatile boolean stopFlag;

		private volatile boolean stopped;

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

		public void killMe()
		{
			stopFlag = true;
			synchronized (_SYNC_)
			{
				this.interrupt();
			}
		}

		public boolean killed()
		{
			return stopped;
		}

		public void run()
		{
			try
			{
				while (!stopFlag)
				{
					try
					{
						sleep(keepAliveInterval);
					}
					catch (Exception e)
					{
					}
					if (stopFlag) break;
					synchronized (_SYNC_)
					{
						if (getConnected()) try
						{
							if (log != null) log.info("** Keep-Live **");
							atHandler.isAlive();
						}
						catch (Exception e)
						{
							if (!stopFlag && log != null) log.debug("Unexpected exception", e);
						}
					}
				}

			}
			finally
			{
				if (log != null) log.debug("KeepAlive Thread is teminated!");
				stopped = true;
			}
		}
	}

	private class CReceiveThread extends Thread
	{
		private volatile boolean stopFlag;

		private volatile boolean stopped;

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

		public void killMe()
		{
			stopFlag = true;
			synchronized (newMsgMonitor)
			{
				newMsgMonitor.notify();
			}
		}

		public boolean killed()
		{
			return stopped;
		}

		public void run()
		{
			LinkedList messageList = new LinkedList();
			try
			{
				while (!stopFlag)
				{
					int state = newMsgMonitor.waitEvent(asyncPollInterval);
					if (stopFlag) break;
					if (getConnected() && (receiveMode == ReceiveMode.AsyncCnmi || receiveMode == ReceiveMode.AsyncPoll))
					{
						try
						{
							if (state == CNewMsgMonitor.DATA && !atHandler.dataAvailable() && newMsgMonitor.getState() != CNewMsgMonitor.CMTI) continue;

							newMsgMonitor.reset();
							messageList.clear();
							readMessages(messageList, asyncRecvClass);
							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)
						{
							catchAsyncException(e);
						}
					}
				}

			}
			finally
			{
				if (log != null) log.debug("Receive Thread is terminated!");
				stopped = true;
			}
		}
	}

	public static void main(String[] args)
	{
		System.out.println(_name + " " + _version);
		System.out.println("	Java API for sending / receiving SMS messages via GSM modem.");
		System.out.println("	This software is distributed under the LGPL license.");
		System.out.println("");
		System.out.println("Copyright (C) 2002-2007, Thanasis Delenikas, Athens / GREECE.");
		System.out.println("Visit http://smslib.org for latest information.\n");
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影一区二区三区| 精品一区二区三区不卡| 欧美一区国产二区| 色噜噜狠狠一区二区三区果冻| 精品亚洲国产成人av制服丝袜| 亚洲综合男人的天堂| 久久精品一区二区三区四区| 91麻豆精品国产91久久久使用方法| 不卡免费追剧大全电视剧网站| 国产99久久久国产精品潘金| 懂色av中文字幕一区二区三区| 国产成人8x视频一区二区| 日本系列欧美系列| 亚洲超碰97人人做人人爱| 日韩成人午夜精品| 国产乱子伦一区二区三区国色天香| 久久99国产精品免费| 国产在线观看一区二区| 成人av在线电影| 欧美日韩免费高清一区色橹橹| 欧美性猛片aaaaaaa做受| 精品免费99久久| 欧美tk—视频vk| 亚洲福利视频一区| 国产成人精品免费在线| 在线观看日韩高清av| 久久奇米777| 亚洲bt欧美bt精品| 成人av网站免费观看| 日韩一区二区在线观看视频播放| 精品乱码亚洲一区二区不卡| 亚洲乱码国产乱码精品精可以看| 视频一区二区三区入口| 91色porny蝌蚪| 国产清纯白嫩初高生在线观看91 | 美女一区二区视频| 色婷婷综合激情| 中文字幕二三区不卡| 另类小说色综合网站| 欧美精品粉嫩高潮一区二区| 国产精品第一页第二页第三页| 一区二区三区中文在线观看| 国产91丝袜在线18| 国产欧美精品一区二区色综合| 亚洲精品一二三| 欧美三级视频在线| 亚洲成av人在线观看| 在线亚洲高清视频| 亚洲精品高清在线| 91极品美女在线| 亚洲成人自拍一区| 99久久国产综合色|国产精品| 久久青草欧美一区二区三区| 久久不见久久见免费视频7| 欧美亚洲一区二区三区四区| 亚洲免费在线看| 99re成人在线| 亚洲国产精品成人久久综合一区| 国产成人在线观看| 久久久午夜精品理论片中文字幕| 三级欧美在线一区| 欧美精品自拍偷拍| 青青国产91久久久久久| 91丨porny丨国产入口| 亚洲狠狠丁香婷婷综合久久久| 色综合中文字幕国产 | 亚洲成在线观看| 欧美一级高清大全免费观看| 久久精品国产99久久6| 中文字幕制服丝袜成人av| 本田岬高潮一区二区三区| 五月综合激情网| 日韩三级视频中文字幕| 男人的天堂亚洲一区| 国产精品嫩草影院com| 欧美一级夜夜爽| 99久久婷婷国产精品综合| 丝袜a∨在线一区二区三区不卡| 91久久精品一区二区二区| 精品在线视频一区| 亚洲综合在线第一页| 日韩一区和二区| 欧美日韩夫妻久久| 97aⅴ精品视频一二三区| 国产精品91xxx| 美女视频免费一区| 亚洲精品国产a| 久久精品人人做| av一区二区不卡| eeuss鲁片一区二区三区在线观看| 天天色综合天天| 一区二区三区中文字幕| 亚洲美女免费视频| 樱桃国产成人精品视频| 国产精品久久影院| 亚洲欧美自拍偷拍| 国产精品大尺度| 国产精品免费aⅴ片在线观看| 国产精品午夜久久| 久久精品亚洲国产奇米99| 欧美性做爰猛烈叫床潮| 欧美一区二区三区不卡| 精品国产乱码久久久久久图片 | 国产日韩欧美综合在线| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲成a天堂v人片| 亚洲第一综合色| 国产电影精品久久禁18| 在线视频观看一区| 日韩精品影音先锋| 欧美激情在线看| 欧美韩国日本综合| 久久99久久精品| 日韩欧美中文字幕一区| 亚洲永久免费视频| 97久久久精品综合88久久| 日韩三级高清在线| 五月天一区二区三区| 一本一道波多野结衣一区二区| 欧美一区二区在线不卡| 国产精品免费aⅴ片在线观看| 激情都市一区二区| 日韩欧美在线不卡| 日韩综合在线视频| 在线播放/欧美激情| 亚洲综合激情网| 欧美午夜精品一区二区三区| 亚洲视频电影在线| 91免费版pro下载短视频| 一区二区三区在线观看欧美| 99精品国产一区二区三区不卡| 亚洲欧洲精品一区二区三区不卡 | 欧美成人一级视频| 国产真实乱对白精彩久久| 欧美va在线播放| 成人av免费网站| 亚洲综合另类小说| 91麻豆精品国产91久久久| 日韩国产欧美在线播放| 久久品道一品道久久精品| 成人av动漫网站| 一区二区三区久久久| 5858s免费视频成人| 国产91丝袜在线播放九色| 亚洲婷婷综合色高清在线| 欧美三片在线视频观看 | 久久毛片高清国产| 91福利社在线观看| 韩国女主播一区| 一区二区久久久久| 国产日韩欧美在线一区| 欧美偷拍一区二区| 国产成人小视频| 免费亚洲电影在线| 亚洲午夜成aⅴ人片| 久久久99精品免费观看| 欧美性高清videossexo| 老司机午夜精品| 国产精品理论片在线观看| 91精品国产丝袜白色高跟鞋| 成av人片一区二区| 成人综合婷婷国产精品久久 | 欧美精品久久天天躁| 不卡的av电影在线观看| 国产一区二区三区蝌蚪| 日本欧美一区二区三区乱码| 亚洲综合男人的天堂| 亚洲人成精品久久久久久| 中文字幕日本不卡| 亚洲男同1069视频| 亚洲日本免费电影| 成人欧美一区二区三区| 欧美国产成人在线| 日本一区二区高清| 亚洲色图色小说| 亚洲国产精品一区二区www| 亚洲码国产岛国毛片在线| 欧美国产日韩亚洲一区| 亚洲天堂2014| 亚洲制服丝袜一区| 亚洲一区二区中文在线| 亚洲国产精品久久不卡毛片| 亚洲免费在线视频一区 二区| 亚洲人成网站色在线观看| 亚洲国产精品久久久久秋霞影院 | 91精品国产一区二区三区蜜臀 | 亚洲精品免费一二三区| 亚洲视频狠狠干| 最新日韩av在线| 亚洲精品视频自拍| 日韩av一级电影| 国内精品免费**视频| av在线不卡网| 欧美日韩免费观看一区三区| 久久综合九色综合欧美亚洲| 欧美日韩精品电影| 91丨porny丨最新| 精品对白一区国产伦| 日韩一区欧美一区| 国内精品在线播放|