public void doIt() throws Exception {
// Define a list which will hold the read messages.
List<InboundMessage> msgList;
// Create the notification callback method for inbound & status report
// messages.
InboundNotification inboundNotification = new InboundNotification();
// Create the notification callback method for inbound voice calls.
CallNotification callNotification = new CallNotification();
// Create the notification callback method for gateway statuses.
GatewayStatusNotification statusNotification = new GatewayStatusNotification();
OrphanedMessageNotification orphanedMessageNotification = new OrphanedMessageNotification();
try {
System.out
.println("Example: Read messages from a serial gsm modem.");
System.out.println(Library.getLibraryDescription());

System.out.println("Version: " + Library.getLibraryVersion());
// Create the Gateway representing the serial GSM modem.
SerialModemGateway gateway = new SerialModemGateway("SMS", "COM3", 9600, "HUAWEI", "U8110");
// Set the modem protocol to PDU (alternative is TEXT). PDU is the
// default, anyway...

gateway.setProtocol(Protocols.PDU);
// Do we want the Gateway to be used for Inbound messages?
gateway.setInbound(true);
// Do we want the Gateway to be used for Outbound messages?
gateway.setOutbound(true);
gateway.setDisplayIllegalReceivedMessages(true);
// Let SMSLib know which is the SIM PIN.
gateway.setSimPin("0000");
gateway.setSmscNumber("+8613800631500");

// Set up the notification methods.
Service.getInstance().setInboundMessageNotification(
inboundNotification);
Service.getInstance().setCallNotification(callNotification);
Service.getInstance().setGatewayStatusNotification(
statusNotification);
Service.getInstance().setOrphanedMessageNotification(
orphanedMessageNotification);
// Add the Gateway to the Service object.
Service.getInstance().addGateway(gateway);
// Similarly, you may define as many Gateway objects, representing
// various GSM modems, add them in the Service object and control
// all of them.
// Start! (i.e. connect to all defined Gateways)
Service.getInstance().startService();
// Printout some general information about the modem.
System.out.println();
System.out.println("Modem Information:");
System.out.println("  Manufacturer: " + gateway.getManufacturer());
System.out.println("  Model: " + gateway.getModel());
System.out.println("  Serial No: " + gateway.getSerialNo());
System.out.println("  SIM IMSI: " + gateway.getImsi());
System.out.println("  Signal Level: " + gateway.getSignalLevel()
+ " dBm");
System.out.println("  Battery Level: " + gateway.getBatteryLevel()
+ "%");
System.out.println();
// In case you work with encrypted messages, its a good time to
// declare your keys.
// Create a new AES Key with a known key value.
// Register it in KeyManager in order to keep it active. SMSLib will
// then automatically
// encrypt / decrypt all messages send to / received from this
// number.
Service.getInstance()
.getKeyManager()
.registerKey(
"+306948494037",
new AESKey(new SecretKeySpec("0011223344556677"
.getBytes(), "AES")));
// Read Messages. The reading is done via the Service object and
// affects all Gateway objects defined. This can also be more
// directed to a specific
// Gateway - look the JavaDocs for information on the Service method
// calls.
msgList = new ArrayList<InboundMessage>();
Service.getInstance().readMessages(msgList, MessageClasses.ALL);

for (InboundMessage msg : msgList)
{
msg.setEncoding(MessageEncodings.ENCUCS2);
System.out.println(msg);
}
//  Sleep now. Emulate real world situation and give a chance to the
//  notifications
//  methods to be called in the event of message or voice call
//  reception.
// System.out.println("Now Sleeping - Hit <enter> to stop service.");

System.in.read();
System.in.read();
} catch (Exception e) {
e.printStackTrace();

finally {
Service.getInstance().stopService();
}
}


public class InboundNotification implements IInboundMessageNotification {
public void process(AGateway gateway, MessageTypes msgType,
InboundMessage msg) {
System.out.println("11111");
System.out.println(msgType.toString());
try {
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

if (msgType == MessageTypes.INBOUND)
System.out
.println(">>> New Inbound message detected from Gateway: "
+ gateway.getGatewayId());
else if (msgType == MessageTypes.STATUSREPORT)
System.out
.println(">>> New Inbound Status Report message detected from Gateway: "
+ gateway.getGatewayId());
System.out.println(msg);
}
}

public class CallNotification implements ICallNotification {
public void process(AGateway gateway, String callerId) {
System.out.println(">>> New call detected from Gateway: "
+ gateway.getGatewayId() + " : " + callerId);
}
} public class GatewayStatusNotification implements
IGatewayStatusNotification {
public void process(AGateway gateway, GatewayStatuses oldStatus,
GatewayStatuses newStatus) {
System.out.println(">>> Gateway Status change for "
+ gateway.getGatewayId() + ", OLD: " + oldStatus
+ " -> NEW: " + newStatus);
}
} public class OrphanedMessageNotification implements
IOrphanedMessageNotification {
public boolean process(AGateway gateway, InboundMessage msg) {
System.out.println(">>> Orphaned message part detected from "
+ gateway.getGatewayId());
System.out.println(msg);
return false;
}
}
public static void main(String args[]) {
ReadMessages app = new ReadMessages();
try {
app.doIt();
} catch (Exception e) {
e.printStackTrace();
}
}
下面是控制台输出的,启动成功,就是来短信没反映
Example: Read messages from a serial gsm modem.
SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways.
This software is distributed under the terms of the Apache v2.0 License.
Web Site: http://smslib.org
Version: 3.5.1
F:\workspace\TMMS\conf\smsConfig.properties was loaded successfully.
The Converter begins to working...
log4j:WARN No appenders could be found for logger (smslib).
log4j:WARN Please initialize the log4j system properly.
>>> Gateway Status change for SMS, OLD: STOPPED -> NEW: STARTING
>>> Gateway Status change for SMS, OLD: STARTING -> NEW: STARTEDModem Information:
  Manufacturer: HUAWEI Technologies
  Model: U8110
  Serial No: 351757040385957
  SIM IMSI: ** MASKED **
  Signal Level: -73 dBm
  Battery Level: 100%