最近公司没事找事,本来想干的事情又被耽误了……不连贯啊~~~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组件发布在此文中。
使用示例如下:
源码下载:
http://download.csdn.net/source/689214
半夜睡不着觉,想起博客又一段时间没更新了,准备写点新内容。
————————————————————————————————————————————
众所周知,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组件发布在此文中。
使用示例如下:
- packageorg.test;
- importorg.loon.framework.test.sms.SMS;
- importorg.loon.framework.test.sms.SMSImpl;
- /**
- *Copyright2008
- *
- *LicensedundertheApacheLicense,Version2.0(the"License");youmaynot
- *usethisfileexceptincompliancewiththeLicense.Youmayobtainacopyof
- *theLicenseat
- *
- *http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
- *distributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUT
- *WARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.Seethe
- *Licenseforthespecificlanguagegoverningpermissionsandlimitationsunder
- *theLicense.
- *
- *@projectloonframework
- *@authorchenpeng
- *@email:ceponline@yahoo.com.cn
- *@version0.1
- */
- publicclassSendManager{
- publicstaticvoidmain(String[]args)throwsException{
- SMSsms=newSMSImpl();
- //与默认手机端口建立通讯
- sms.begin();
- //发送短信,1:目标手机号码,比如130101125002:短信内容,默认使用pdu模式,7-bit编码
- sms.getDriver().sendMessage("13010112500","收到此短信者速速请我吃饭,仿膳标准即可,神兵火急如律令111……");
- //关闭通讯
- sms.end();
- }
- }
源码下载:
http://download.csdn.net/source/689214