`

java串口 来电显示

 
阅读更多

一.使用sun公司的comm.jar
1.配置(下载comm.jar包http://code.google.com/p/smslib/downloads/detail?name=javacomm20-win32.zip&can=2&q=)
(1).将包下的javax.comm.properties放到jdk home/jre/lib下
(2).将包下的win32com.dll放到jdk home/jre/bin下(也可以放到windows下的system32下)
(3).将comm.jar放到jdk home/jre/lib/ext下
2.java代码

Java代码 收藏代码
  1. packagecomm;
  2. importjava.io.IOException;
  3. importjava.io.InputStream;
  4. importjava.io.OutputStream;
  5. importjava.util.Enumeration;
  6. importjava.util.TooManyListenersException;
  7. importjavax.comm.CommDriver;
  8. importjavax.comm.CommPortIdentifier;
  9. importjavax.comm.PortInUseException;
  10. importjavax.comm.SerialPort;
  11. importjavax.comm.SerialPortEvent;
  12. importjavax.comm.SerialPortEventListener;
  13. importjavax.comm.UnsupportedCommOperationException;
  14. publicclassSimpleWrite{
  15. publicstaticvoidmain(String[]args){
  16. //System.loadLibrary("win32com");
  17. CommDriverdriver=null;
  18. StringdriverName="com.sun.comm.Win32Driver";
  19. //SerialPortsPort=(SerialPort)driver.getCommPort("COM4",
  20. //CommPortIdentifier.PORT_SERIAL);
  21. Enumeration<CommPortIdentifier>enumeration=CommPortIdentifier
  22. .getPortIdentifiers();
  23. while(enumeration.hasMoreElements()){
  24. CommPortIdentifierportId=enumeration.nextElement();
  25. System.out.println(portId.getName()+"============");
  26. if(portId.getName().equals("COM1")){
  27. try{
  28. System.out.println("jjj");
  29. finalSerialPortsp=(SerialPort)portId.open(
  30. "SimpleWrite",1000);
  31. sp.setSerialPortParams(2400,SerialPort.DATABITS_8,
  32. SerialPort.STOPBITS_2,SerialPort.PARITY_NONE);
  33. finalInputStreamis=sp.getInputStream();
  34. finalOutputStreamos=sp.getOutputStream();
  35. os.write(100);
  36. os.flush();
  37. os.close();
  38. //SetnotifyOnDataAvailabletotruetoalloweventdriveninput.
  39. sp.notifyOnDataAvailable(true);
  40. //SetnotifyOnBreakInterruptoalloweventdrivenbreak
  41. //handling.
  42. sp.notifyOnBreakInterrupt(true);
  43. //Setreceivetimeouttoallowbreakingoutofpollingloop
  44. //duringinputhandling.
  45. sp.enableReceiveTimeout(30);
  46. finalStringBufferlinkWgt=newStringBuffer();//存放获取的数据
  47. sp.addEventListener(newSerialPortEventListener(){
  48. @Override
  49. publicvoidserialEvent(SerialPortEvente){
  50. intnewData=0;
  51. //Determinetypeofevent.
  52. switch(e.getEventType()){
  53. //Readdatauntil-1isreturned.If\risreceived
  54. //substitute
  55. //\nforcorrectnewlinehandling.
  56. caseSerialPortEvent.DATA_AVAILABLE:
  57. while(newData!=-1){
  58. try{
  59. newData=is.read();
  60. if(newData==-1){
  61. break;
  62. }
  63. if('\r'==(char)newData){
  64. }else{
  65. linkWgt.append((char)newData);
  66. }
  67. }catch(IOExceptionex){
  68. System.err.println(ex);
  69. return;
  70. }
  71. }
  72. //AppendreceiveddatatomessageAreaIn.
  73. try{
  74. System.out
  75. .println("linkWgt---------|||||"
  76. +Double.valueOf(linkWgt
  77. .toString()));
  78. }catch(Exceptionew){
  79. ew.printStackTrace();
  80. }finally{
  81. try{
  82. //用完了,记得关闭端口。
  83. is.close();
  84. sp.close();
  85. }catch(Exceptionc){
  86. c.printStackTrace();
  87. }
  88. }
  89. break;
  90. //IfbreakeventappendBREAKRECEIVEDmessage.
  91. caseSerialPortEvent.BI:
  92. System.out
  93. .println("\n---BREAKRECEIVED---\n");
  94. }
  95. }
  96. });
  97. }catch(PortInUseExceptione){
  98. e.printStackTrace();
  99. }catch(UnsupportedCommOperationExceptione){
  100. e.printStackTrace();
  101. }catch(IOExceptione){
  102. e.printStackTrace();
  103. }catch(TooManyListenersExceptione){
  104. e.printStackTrace();
  105. }
  106. }
  107. }
  108. }
  109. }


二.用rxtx.jar代替comm.jar
# copy rxtxSerial.dll into your c:\program files\java\jre-version\bin dir
# copy RXTXcomm.jar into your c:\program files\java\jre-version\lib\ext dir
# change all references from 'javax.comm' to 'gnu.io'
三.然后就可以测试了,推荐使用Virtual Serial Port Driver 6.9 by Eltima Software
它可以虚拟出两个相连的串口,你可以通过包里的一个小例子:SimpleWrite,SimpleRead
来测试
四.检查下你的modem支不支持来电显示:

1.打开超级终端,随便输入一个连接名称,例如TEST。(也可以用其它终端件, 如Bitware)
2.按确定后,下个窗口中,看到你的MODEM,不要输入电话号码。再下一步。
3.在这个窗口中按取消。
4.这样一个可以输入的空白窗口就有了。
输入:ATE1回车
如果出现OK,说明MODEM支持AT指令,不然,其他也不用试了。
然后输入下面的命令,只要一条反应有OK,就说明MODEM本身芯片支持来电显示。
AT#CID=1 比较常用
AT%CCID=1
AT+VCID=1 比较常用
AT#CC1
AT*ID1
5.如果有一条有OK,接下来,你打入电话,(事先接好电话线到MODEM)。
如果你的MODEM真的支持来电显示,则会出现如下类似的内容:
RING
DATE = 1010
TIME = 1600
NMBR = **********(你拨入的主叫号码)
RING
如果你的MODEM不支持来电显示,则此时可能会显示:
RING
RING
RING
还有的MODEM,什么也不显示,那就更不可能支持来电显示了。

http://www.ititgo.com.cn/goods-144.html

下面我也把comm的包贴上来,估摸着很多朋友进不去那个googlecode,下载地址是下载

分享到:
评论

相关推荐

    通过fax modem 仪器获取座机电话来电显示功能

    2. **Java串口通信**:在Java中,我们可以使用`javax.comm`库或者第三方库如RXTX来实现与串行设备(如Fax Modem)的通信。这些库提供了读取和写入串口数据的方法,从而实现对Fax Modem的控制和数据交换。 3. **来电...

    使用指令AT

    11. 来电者的 ID:可以使用 AT+CLIP=1 指令来激活来电显示,并使用 +CLCC 命令来列出所有的 ID。 12. 载体服务:载体服务是在无线通讯服务中提供两个访问点之间传输信号的能力。 13. 串口速率匹配:使用 AT+IPR?...

    深入解析Android phone模块

    5. **Java层处理**:Java层通过监听RIL响应来处理这些事件,比如更新UI显示当前的信号强度。 #### 三、猫相关的各种状态的监听和通知机制 猫模式下的状态监听和通知机制主要涉及到Modem与系统之间的交互。当Modem...

    DNA进化算法及其改进研究样本.doc

    DNA进化算法及其改进研究样本.doc

    基于Matlab的水果识别程序:融合图像处理与深度学习技术

    内容概要:本文详细介绍了使用Matlab编写的水果识别程序。首先简述了人工智能和机器学习在水果识别领域的应用背景,强调了Matlab作为强大编程环境的优势。接着,文章逐步讲解了水果识别程序的具体实现流程,涵盖数据预处理、特征提取、模型训练以及最终的识别算法实现。每个环节都采用了先进的技术和方法,如图像去噪、大小调整、深度学习算法(特别是卷积神经网络CNN),并通过训练神经网络模型来提升识别精度。此外,还讨论了相关技术手段和技术挑战,展示了Matlab在图像处理和计算机视觉方面的强大能力。 适合人群:对图像处理、机器学习感兴趣的科研人员、学生及工程师。 使用场景及目标:适用于希望深入了解Matlab环境下水果识别程序的设计与实现的研究者;旨在帮助使用者掌握从数据准备到模型部署的一系列技能,为实际项目提供理论支持和技术指导。 其他说明:文中不仅提供了详细的程序实现步骤,还对未来发展方向进行了展望,鼓励更多人参与到水果识别及相关领域的研究中。

    scratch少儿编程逻辑思维游戏源码-修复塔.zip

    scratch少儿编程逻辑思维游戏源码-修复塔.zip

    spring-boot-2.5.13.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-天空之球.zip

    scratch少儿编程逻辑思维游戏源码-天空之球.zip

    spring-boot-1.0.2.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-土豆兄弟.zip

    scratch少儿编程逻辑思维游戏源码-土豆兄弟.zip

    scratch少儿编程逻辑思维游戏源码-小鸟冒险.zip

    scratch少儿编程逻辑思维游戏源码-小鸟冒险.zip

    scratch少儿编程逻辑思维游戏源码-跳进火山.zip

    scratch少儿编程逻辑思维游戏源码-跳进火山.zip

    scratch少儿编程逻辑思维游戏源码-跳跃引擎.zip

    scratch少儿编程逻辑思维游戏源码-跳跃引擎.zip

    scratch少儿编程逻辑思维游戏源码-旋转(4).zip

    scratch少儿编程逻辑思维游戏源码-旋转(4).zip

    scratch少儿编程逻辑思维游戏源码-死里逃生.zip

    scratch少儿编程逻辑思维游戏源码-死里逃生.zip

    spring-boot-1.3.5.RELEASE.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    spring-boot-2.6.10.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    HPERP商业软件实施解决方案模板.doc

    HPERP商业软件实施解决方案模板.doc

    spring-boot-2.2.3.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    Drogon是一个基于C++17/20的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序

    Drogon是一个基于C++17/20的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序。

Global site tag (gtag.js) - Google Analytics