我用的是smslib-3.3.0b2 版本 和 commons-net-1.4.1 版本。正常的短信 收/发 是没问题的。
但我想实现几个功能,不知道代码怎么实现。
我读取短信的方法是:
List<InboundMessage> msgList;
msgList = new ArrayList<InboundMessage>();
this.srv.readMessages(msgList, MessageClasses.ALL);
for (InboundMessage msg : msgList) {
Log.info(msg);
}
这样好像是读取SIM卡中未读信息(不怎么确定,我一张卡没有未读信息,显示是0条。换另一张卡,也没有未读信息,但能读出SIM卡中所有信息来)。
问题:1、我想实现只读取未读信息,然后成功读取后就把短信状态设置为已读信息。下次就不要再读取信息了。
2、我不知道要怎么实现监听器(设定多长时间去读取一次短信)。
3、这个平台还要不要用其它框架。
我这个短信平台,主要是用来保存员工每天工作日志的。员工日志发送过来,然后读取信息,保存到数据库中。
请高手帮忙了。。
但我想实现几个功能,不知道代码怎么实现。
我读取短信的方法是:
List<InboundMessage> msgList;
msgList = new ArrayList<InboundMessage>();
this.srv.readMessages(msgList, MessageClasses.ALL);
for (InboundMessage msg : msgList) {
Log.info(msg);
}
这样好像是读取SIM卡中未读信息(不怎么确定,我一张卡没有未读信息,显示是0条。换另一张卡,也没有未读信息,但能读出SIM卡中所有信息来)。
问题:1、我想实现只读取未读信息,然后成功读取后就把短信状态设置为已读信息。下次就不要再读取信息了。
2、我不知道要怎么实现监听器(设定多长时间去读取一次短信)。
3、这个平台还要不要用其它框架。
我这个短信平台,主要是用来保存员工每天工作日志的。员工日志发送过来,然后读取信息,保存到数据库中。
请高手帮忙了。。
解决方案 »
- Java如何把String转成Data或者Calendar
- php jsp
- 在SWT/JFace中的canvas控件中如何控制图片的大小??
- Linux下JavaMail的奇怪问题!!!!
- 如何将JTextField的内容加到JList列表框中(初学者)
- 当窗口改变大小时,如何使TableViewer中table的各列均匀的充满整个表格。
- 请问输入框里的内容改变了,是触发什么事件呢?
- java开发的一个很重要的环节--程序结构及代码的优化!请进!
- 郁闷中已经抽了5支烟了,能帮我搞定让我干啥都行!
- 以下程序是否会造成死锁???应该如何判断,谢谢
- socket报错啊
- java解析xml问题:如何获得一级标签下全部内容?
this.srv.readMessages(msgList, MessageClasses.ALL);
你这句代码读的是全部的短信,MessageClasses.READ 已读短信, MessageClasses.UNREAD 未读短信。问题1:我也发了帖子问了这个,没人回答。
问题2: 我用3.5.0版本的自带有监听器,应该是实时监听的。
我们需要实现一个接口来实现回调方法:
先实现接口:IInboundMessageNotification,
然后实现方法:void process(AGateway gateway, MessageTypes msgType, InboundMessage msg)。
从方法可以看出,传入的参数为:网关,短信类型,进站短信。
这样子,当收到短信的时候这个方法会被自动调用,你就得到短信,就可以做后续处理了,
不过郁闷的是,我的程序每次都把所有的短信读取出来,在这里求高人解答.....
如何在回调方法里读取未读短信
问题3: smslib不依赖其他框架。
MessageClasses.READ 已读短信, MessageClasses.UNREAD 未读短信。
我试了下,确实是这样的。读取相应的短信。
那有没有方法是 把读取出来的信息设置成已读信息了(我下次读取未读短信的时候就不会再读取出来了)。
我问的不是smslib依不依赖其他框架。我是问,我想做一个短信平台,就隔一段时间读取一次短信,隔一段时间发送短信。还要不要用到其它框架。
但是,如果说隔一段时间读取一次短信的话,smslib本身带有监听器,收到短信自然会读取,就是我上面说的监听器。
其实很简单,只需要通过gateway再读取一次消息就可以了。
假如 未读消息有 InboundMessage img,网关gateway
那么只需:
gateway.readMessage(img.getMemLocation(), img.getMemIndex());
就可以了。