最近公司没事找事,本来想干的事情又被耽误了……不连贯啊~~~555555555555……

半夜睡不着觉,想起博客又一段时间没更新了,准备写点新内容。

————————————————————————————————————————————

众所周知,SMS(Short Messaging Service)即短消息业务,是由Etsi所制定的一个规范(GSM 03.40 和 GSM03.38)。当使用其7-bits编码时,可以发送最多160个字符;使用8-bit编码,最多可以发送140个字符,通常无法直接通过手机显示;还有用16-bit编码时,最多70个字符,被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。由于SMS是目前大众所使用的几大主流信息传递手段之一,虽然鄙人并不从事短信服务开发,但作为一个程序员来讲始终艺不压身,尤其最近十一期间业余接触了相关资料(给朋友群发短信玩……),因此准备将一些资料放在博客上以供有需要者参考。

目前来说,短信的软件发送大体有三种途径:

1、 网关方式:就是向当地的电信部门申请,不需要额外的设备,利用对方提供的API调用程序发送短信,适用于大型的通信公司,像华为、傲天、中兴、亚信等。
2、 终端方式:就是借助像GSM MODEM之类的设置(支持AT指令的手机也行),通过数据线连接电脑,来发送短信,用这种方法比较适用于小型及个人。要实现这种方式必须理解串口通信、AT指令、短信编码、解码。
3、 利用网站实现,由网站代发短信数据,对网站依赖性太高,对网络的要求也比较高,不适于进行项目开发。
 
  由于我是个人使用,所以本文选择了AT命令方式作为讲解。

所谓AT,即Attention。AT命令集是从Terminal Equipment或Data Terminal Equipment向Terminal Adapter或Data Circuit Terminating Equipment发送的,通过TA、TE发送AT命令来控制Mobile Station的功能与GSM网络业务进行交互。我们可以通过AT命令进行呼叫短信、电话本、数据业务、补充业务、传真等方面的控制。

在Java编程中,我们可以通过Java Comm进行手机与电脑的串口通讯,以此通过AT指令控制手机操作。

在Google code上有一名为SMSLib的项目,是一个以AT指令实现手机操作的组件( http://code.google.com/p/smslib/downloads/list),有兴趣者可以直接下载并使用。

但由于AT指令操作是非常之简单的,我们完全可以自己写组件完成相关操作,而且针对联通、移动、小灵通等不同的服务需求,自制组件反而更容易控制及扩充,故此我也写了一个简单的SMS组件发布在此文中。

使用示例如下:

  1. package org.test;
  2. import org.loon.framework.test.sms.SMS;
  3. import org.loon.framework.test.sms.SMSImpl;
  4. /**
  5. * Copyright 2008
  6. *
  7. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  8. * use this file except in compliance with the License. You may obtain a copy of
  9. * the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  15. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  16. * License for the specific language governing permissions and limitations under
  17. * the License.
  18. *
  19. * @project loonframework
  20. * @author chenpeng
  21. * @email:ceponline@yahoo.com.cn
  22. * @version 0.1
  23. */
  24. public class SendManager {
  25. public static void main(String[] args) throws Exception {
  26. SMS sms = new SMSImpl();
  27. // 与默认手机端口建立通讯
  28. sms.begin();
  29. // 发送短信,1:目标手机号码,比如13010112500 2:短信内容,默认使用pdu模式,7-bit编码
  30. sms.getDriver().sendMessage("13010112500","收到此短信者速速请我吃饭,仿膳标准即可,神兵火急如律令111……");
  31. // 关闭通讯
  32. sms.end();
  33. }
  34. }

源码下载:

http://download.csdn.net/source/689214

Java串口与手机通信相关推荐

  1. Java串口通信详解(转)

    Java串口通信详解(转) 作者:denimcc 日期:2007-05-11 序言     说到开源,恐怕很少有人不挑大指称赞.学生通过开源代码学到了知识,程序员通过开源类库获得了别人的成功经验及能够 ...

  2. Java串口通信具体解释

    序言 说到开源,恐怕非常少有人不挑大指称赞.学生通过开源码学到了知识,程序猿通过开源类库获得了别人的成功经验及可以按时完毕手头的project,商家通过开源软件赚到了钱--,总之是皆大欢喜.然而开源软 ...

  3. STM32CubeMX(2)——串口实现HC-05蓝牙模块与手机通信

    STM32实现蓝牙与手机通信 使用的蓝牙 STM32Cubemax配置 手机连接蓝牙 代码编写 总结 使用的蓝牙 本文使用的蓝牙是市面上常用的HC-05蓝牙模块 其引脚和STM32的连接为 蓝牙模块 ...

  4. Java串口通信报错# Problematic frame: # C [rxtxSerial.dll+0x4465](含详细解决流程)

    背景:在win10x64,myEclipse软件中移植他人的Java串口通信项目到自己电脑上时报错 问题:在GUI界面上点击"连接"按钮,GUI界面闪退,并在myEclipse软件 ...

  5. Java串口通信详解

    序言 说到开源,恐怕很少有人不挑大指称赞.学生通过开源代码学到了知识,程序员通过开源类库获得了别人的成功经验及能够按时完成手头的工程,商家通过开源软件赚到了钱--,总之是皆大欢喜.然而开源软件或类库的 ...

  6. Java串口通信-JSerialComm

    Java串口通信-JSerialComm 目前网上的Java串口通信主要使用RXTXComm,但是这个库已经很久没有更新(最近的更新似乎在2012年),并且与JavaFX集成打包时会出现BUG.JSe ...

  7. 基于Java的TCP Socket通信详解(计算机端/Android手机端)

    TCP Socket通信是一种比较常用的基于连接的网络通信方式.本文通过Java实现TCP Socket通信,并将其用于计算机端.Android手机端,同时做到代码规范化,实现代码最大化复用. 本文代 ...

  8. HC-05蓝牙模块遇到的问题与解决方法及实现和手机通信

    文章目录 1.蓝牙模块的调试--解决无法与设置AT命令的问题 1)问题1:没有搜索到串口 方法1:网上下载驱动 方法2:自己更新驱动 2)问题2:串口打开失败--PL2303HXA自2012已停产,请 ...

  9. 单片机蓝牙烧录_实现蓝牙HC-05、06与单片机的连接及与手机通信

    蓝牙(Bluetooth):是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换(使用2.4-2.485GHz的ISM波段的UHF无线电波).蓝牙技术最初由电信巨头爱立信公司 ...

最新文章

  1. GitHub开源城市结构公交路线数据可视化
  2. php-fpm进程数优化方法
  3. 轻量级java开发工具_成为 Java 程序员必备的 5 个工具
  4. AJAX - 创建XMLHttpRequest 对象
  5. excel 相邻数计算机,Excel计算公式大全.doc
  6. VB 判断图片文件的类型格式
  7. 读取.Properties配置文件
  8. 面经——算法题数据输入输出
  9. java jhap_Java-Live与JVAP工具的Max
  10. wince 错误 Error: failed PB timebomb check
  11. SQL on HBase -- phoenix 之分页查询
  12. webgl天空盒边界缝隙_WebGL three.js进修笔记 法向量网格材质MeshNormalMaterial的引见和建立360度全景天空盒的要领...
  13. 谈谈全自动安装常使用的pip install的原理及作用!!!
  14. 软件设计师教程笔记 持续更新
  15. 38.状态保持之Session详解
  16. 华为鸿蒙os操作系统有pc版,华为开源操作系统 鸿蒙OS 升级版曝光,打通PC等一大批硬件...
  17. 4、杂项:Hyper-v/远程桌面使用USB设备(串口、加密狗等)
  18. 操作系统 文件索引结构
  19. 47、SimpleOrientationSensor
  20. 开源项目推荐:HandsFree机器人项目

热门文章

  1. Tomcat #无法启动8005端口
  2. CV实战项目--人脸考勤
  3. 关于蓝牙手环日本TELEC认证流程详解
  4. button鼠标离开样式修改_WPF 的Button怎么控制鼠标滑过和点击的样式
  5. 异或交换两个数的原理证明
  6. The type java.lang.Object cannot be resolved It is indirectly referenced ... .
  7. WebApp之JQuery Mobile实现火车列表信息查询
  8. 玩一回没有“蒋氏”的溪口
  9. RouterOS PPPOE Server 服务器设置
  10. 3.5.CentOS7下安装配置Zookeeper集群与一键启动小脚本