Can't smslib just remove these kind of messages? Em segunda-feira, 9 de julho de 2012 14h38min21s UTC-3, T.Delenikas escreveu: > > This is usually due to some message that SMSLib cannot read, like mms, > vcards, etc. > Check if there are any such messages in your modem's memory. > > On Sunday, July 1, 2012 2:02:55 PM UTC+3, Sandaru wrote: >> >> >> >> im using sample codes for configure the smslib.. sending sms is ok but >> the problem is receiving sms.. it always generating following exception.... >> >> test 01 >> 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.2 >> log4j:WARN No appenders could be found for logger (smslib). >> log4j:WARN Please initialize the log4j system properly. >> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for >> more info. >> >>> Gateway Status change for sandaru, OLD: STOPPED -> NEW: STARTING >> >>> Gateway Status change for sandaru, OLD: STARTING -> NEW: STARTED >> >> Modem Information: >> Manufacturer: ZTE CORPORATION >> Model: MF100 >> Serial No: 353164042495652 >> SIM IMSI: ** MASKED ** >> Signal Level: -91 dBm >> Battery Level: 100% >> >> count >>>>>>>>>>>>>>> 0 >> java.lang.StringIndexOutOfBoundsException: String index out of range: >> -12String index out of range: -12 >> >> at java.lang.String.substring(String.java:1938) >> at >> org.smslib.modem.ModemGateway.readMessagesPDU(ModemGateway.java:545) >> at org.smslib.modem.ModemGateway.readMessages(ModemGateway.java:210) >> at org.smslib.Service.readMessages(Service.java:500) >> at org.smslib.Service.readMessages(Service.java:388) >> at org.smslib.Service.readMessages(Service.java:411) >> at messenger.ReadMessage.doIt(ReadMessage.java:102) >> at messenger.ReadMessage.main(ReadMessage.java:165) >> >>> Gateway Status change for sandaru, OLD: STARTED -> NEW: STOPPING >> >>> Gateway Status change for sandaru, OLD: STOPPING -> NEW: STOPPED >> test 01 >> >> >> what is the reason for this im university student and im doing my >> project with this i need immediate help pls.......... refer the >> following codes... those are the codes changed by my self >> >> >> package messenger; >> >> import java.util.ArrayList; >> import java.util.List; >> import javax.crypto.spec.SecretKeySpec; >> import org.smslib.AGateway; >> import org.smslib.AGateway.GatewayStatuses; >> import org.smslib.AGateway.Protocols; >> import org.smslib.ICallNotification; >> import org.smslib.IGatewayStatusNotification; >> import org.smslib.IInboundMessageNotification; >> import org.smslib.IOrphanedMessageNotification; >> import org.smslib.InboundMessage; >> import org.smslib.InboundMessage.MessageClasses; >> import org.smslib.Library; >> import org.smslib.Message.MessageTypes; >> import org.smslib.Service; >> import org.smslib.crypto.AESKey; >> import org.smslib.modem.SerialModemGateway; >> >> public class ReadMessage >> { >> 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("sandaru","COM4",115200,"zte","MF100"); >> // 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); >> // Let SMSLib know which is the SIM PIN. >> gateway.setSimPin("0000"); >> // 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("+94714969763", 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>(); >> System.out.println("count >>>>>>>>>>>>>>> >> "+Service.getInstance().getInboundMessageCount()); >> >> Service.getInstance().readMessages(msgList,MessageClasses.UNREAD);//ERROR>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<< >> //I think Error is in here >> for (InboundMessage msg : msgList) >> 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) >> { >> System.out.println(e.getMessage()); >> e.printStackTrace(); >> } >> finally >> { >> Service.getInstance().stopService(); >> } >> } >> >> public class InboundNotification implements >> IInboundMessageNotification >> { >> public void process(AGateway gateway, MessageTypes msgType, >> InboundMessage msg) >> { >> 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); >> // Since we are just testing, return FALSE and keep the >> orphaned message part. >> return false; >> } >> } >> >> public static void main(String args[]) >> { >> ReadMessage app = new ReadMessage(); >> try >> { >> System.out.println("test 01"); >> app.doIt(); >> System.out.println("test 01"); >> } >> catch (Exception e) >> { >> e.printStackTrace(); >> } >> } >> } >> > >
-- You received this message because you are subscribed to the Google Groups "SMSLib Discussion Group" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msg/smslib/-/mFHbZ36Fa9kJ. For more options, visit https://groups.google.com/groups/opt_out.
