如何用java监听Modem读取来电显示号码!!

meiyu982 2006-11-17 08:20:08
请老大指点
...全文
395 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongfukeji 2010-06-03
  • 打赏
  • 举报
回复
方寸电话录音盒专为需要电话录音、收来电号码和拨出号码的软件开发者设计,可以方便地得到来电号码,拨出号码,摘挂机状态,震铃状态,电话录音。我公司提供的来电显示二次开发动态库,并且提供示例程序演示怎样取电话来电号码,拨出号码,摘挂机状态,震铃状态,以及怎么进行电话录音。

该硬件系统适合很多行业,比如电话办公系统、值班系统、送水系统、花店送花、文秘办公系统、小区电话报警等等。当有顾客打电话订购或咨询时,第一次记录电话和地址后,再次来电时会自动弹出来电人地址及曾经记录保存过的其它信息,这样避免了每次询问记录客户地址等,能提高工作效率,有能给客户留下简洁高效的印象。
联系人:张小姐
tel:13715247684
网 址: http://www.mconnm.com
qq:1095770808
meiyu982 2006-11-17
  • 打赏
  • 举报
回复
谢谢
54powerman 2006-11-17
  • 打赏
  • 举报
回复
java comm用sun的java.comm.jar即可,网上很多。
给你一个例子:
import javax.comm.*;
....

System.setSecurityManager(null);
CommDriver commDriver;
try {
commDriver = (CommDriver) Class.forName("com.sun.comm.Win32Driver").
newInstance();
commDriver.initialize();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

while (true) {
try {
comm = CommPortIdentifier.getPortIdentifier("COM" + port);
serialPort = (SerialPort) comm.open("Serial Communication",
2000);
is = serialPort.getInputStream();
os = serialPort.getOutputStream();
read = new BufferedReader(new InputStreamReader(is));
serialPort.setSerialPortParams(portSpeeed,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
System.out.println("串口打开成功。");
break ;
} catch (Exception e) {
System.out.println("串口初始化失败。正在重试...\n");
e.printStackTrace();
try {
Thread.sleep(2000);
} catch (Exception ee) {}
System.exit(1);
}
}
status = this.STATUS_SERIALREAD;
command("AT+CLIP=1\r"); //设置为工作模式
...

//写指令函数
public void command(String msg) {
msg = msg.toUpperCase();
try {
for (int i = 0; i < msg.length(); i++) {
os.write(msg.charAt(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
//读串口
//这个就从is读取即可,自己去实现吧。

不能再多写了,再多写你就没的写了,呵呵。
meiyu982 2006-11-17
  • 打赏
  • 举报
回复
谢谢,但我完全不懂,java有一个jtapi的东东,但是我不会用,不知道是不是就是你所讲的那样啊
54powerman 2006-11-17
  • 打赏
  • 举报
回复
一 你要自己去找串口编程的资料,写一个串口通信的程序;

二 打开串口以后,设置显示来电模式--即写入如下命令:
AT+CLIP=1\r

三 写一个线程,不断的读取数据,当有来电的时候,串口会自动返回如下形式的字符串:
+CLIP: "01012345678",129

四 你只需要判断如果字符串以“+CLIP”开头,读取双引号中间的字符串即可。

祝你好运~!

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧