CMessage.java
上传用户:shunchung
上传日期:2013-04-07
资源大小:438k
文件大小:6k
源码类别:

手机短信编程

开发平台:

Java

  1. // jSMSEngine API.
  2. // An open-source API package for sending and receiving SMS via a GSM device.
  3. // Copyright (C) 2002-2006, Thanasis Delenikas, Athens/GREECE
  4. // Web Site: http://www.jsmsengine.org
  5. //
  6. // jSMSEngine is a package which can be used in order to add SMS processing
  7. // capabilities in an application. jSMSEngine is written in Java. It allows you
  8. // to communicate with a compatible mobile phone or GSM Modem, and
  9. // send / receive SMS messages.
  10. //
  11. // jSMSEngine is distributed under the LGPL license.
  12. //
  13. // This library is free software; you can redistribute it and/or
  14. // modify it under the terms of the GNU Lesser General Public
  15. // License as published by the Free Software Foundation; either
  16. // version 2.1 of the License, or (at your option) any later version.
  17. // This library is distributed in the hope that it will be useful,
  18. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  20. // Lesser General Public License for more details.
  21. // You should have received a copy of the GNU Lesser General Public
  22. // License along with this library; if not, write to the Free Software
  23. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  24. //
  25. package org.jsmsengine;
  26. import java.util.*;
  27. /**
  28. This class encapsulates the basic characteristics of an SMS message. A message
  29. is further subclassed to an "Incoming" message and an "Outgoing" message.
  30. <br><br>
  31. This class is <strong>never</strong> used directly. Please use one of its descendants.
  32. @see CIncomingMessage
  33. @see CStatusReportMessage
  34. @see COutgoingMessage
  35. @see CPhoneBook
  36. */
  37. public class CMessage
  38. {
  39. public static final int MESSAGE_ENCODING_7BIT = 1;
  40. public static final int MESSAGE_ENCODING_8BIT = 2;
  41. public static final int MESSAGE_ENCODING_UNICODE = 3;
  42. public static final int TYPE_INCOMING = 1;
  43. public static final int TYPE_OUTGOING = 2;
  44. public static final int TYPE_STATUS_REPORT = 3;
  45. private int type;
  46. protected String id;
  47. protected int memIndex;
  48. protected Date date;
  49. protected String originator;
  50. protected String recipient;
  51. protected String text;
  52. protected int messageEncoding;
  53. /**
  54. Default constructor of the class.
  55. @param type the type (incoming/outgoing) of the message.
  56. @param date the creation date of the message.
  57. @param originator the originator's number. Applicable only for incoming messages.
  58. @param recipient the recipient's number. Applicable only for outgoing messages.
  59. @param text the actual text of the message.
  60. @param memIndex the index of the memory location in the GSM device where
  61. this message is stored. Applicable only for incoming messages.
  62. <br><br>Notes:<br>
  63. <ul>
  64. <li>Phone numbers are represented in their international format (e.g. +306974... for Greece).</li>
  65. <li>"Recipient" may be an entry from the phonebook.</li>
  66. </ul>
  67. */
  68. public CMessage(int type, Date date, String originator, String recipient, String text, int memIndex)
  69. {
  70. this.type = type;
  71. this.date = date;
  72. this.originator = originator;
  73. this.recipient = recipient;
  74. this.text = text;
  75. this.memIndex = memIndex;
  76. this.messageEncoding = MESSAGE_ENCODING_7BIT;
  77. }
  78. /**
  79. Returns the type of the message. Type is either incoming or outgoing, as denoted
  80. by the class' static values INCOMING and OUTGOING.
  81. @return  the type of the message.
  82. */
  83. public int getType() { return type; }
  84. /**
  85. Returns the id of the message.
  86. @return  the id of the message.
  87. */
  88. public String getId() { return id; }
  89. /**
  90. Returns the memory index of the GSM device, where the message is stored.
  91. Applicable only for incoming messages.
  92. @return  the memory index of the message.
  93. */
  94. public int getMemIndex() { return memIndex; }
  95. /**
  96. Returns the date of the message. For incoming messages, this is the sent date.
  97. For outgoing messages, this is the creation date.
  98. @return  the date of the message.
  99. */
  100. public Date getDate() { return date; }
  101. /**
  102. Returns the Originator of the message.
  103. @return  the originator of the message.
  104. */
  105. public String getOriginator() { return originator; }
  106. /**
  107. Returns the Recipient of the message.
  108. @return  the recipient of the message.
  109. */
  110. public String getRecipient() { return recipient; }
  111. /**
  112. Returns the actual text of the message (ASCII).
  113. @return  the text of the message.
  114. */
  115. public String getText() { return text; }
  116. /**
  117. Returns the text of the message, in hexadecimal format.
  118. @return  the text of the message (HEX format).
  119. */
  120. public String getHexText() { return CGSMAlphabets.text2Hex(text, CGSMAlphabets.GSM7BITDEFAULT); }
  121. /**
  122. Returns the encoding method of the message. Returns of the constants
  123. MESSAGE_ENCODING_7BIT, MESSAGE_ENCODING_8BIT, MESSAGE_ENCODING_UNICODE.
  124. This is meaningful only when working in PDU mode.
  125. @return  the message encoding.
  126. */
  127. public int getMessageEncoding() { return messageEncoding; }
  128. /**
  129. Set the id of the message.
  130. @param id the id of the message.
  131. */
  132. public void setId(String id) { this.id = id; }
  133. /**
  134. Set the text of the message.
  135. @param text the text of the message.
  136. */
  137. public void setText(String text) { this.text = text; }
  138. /**
  139. Set the date of the message.
  140. @param date the date of the message.
  141. */
  142. public void setDate(Date date) { this.date = date; }
  143. /**
  144. Set the message encoding. Should be one of the constants
  145. MESSAGE_ENCODING_7BIT, MESSAGE_ENCODING_8BIT, MESSAGE_ENCODING_UNICODE.
  146. This is meaningful only when working in PDU mode - default is 7bit.
  147. @param messageEncoding one of the message encoding contants.
  148. */
  149. public void setMessageEncoding(int messageEncoding) { this.messageEncoding = messageEncoding; }
  150. public String toString()
  151. {
  152. String str;
  153. str = "** GSM MESSAGE **n";
  154. str += "  Type: " + (type == TYPE_INCOMING ? "Incoming." : (type == TYPE_OUTGOING ? "Outgoing." : "Status Report.")) + "n";
  155. str += "  Id: " + id + "n";
  156. str += "  Memory Index: " + memIndex + "n";
  157. str += "  Date: " + date + "n";
  158. str += "  Originator: " + originator + "n";
  159. str += "  Recipient: " + recipient + "n";
  160. str += "  Text: " + text + "n";
  161. str += "  Hex Text: " + CGSMAlphabets.text2Hex(text, CGSMAlphabets.GSM7BITDEFAULT) + "n";
  162. str += "  Encoding: " + messageEncoding + "n";
  163. str += "***n";
  164. return str;
  165. }
  166. }