首先来了解下利用java实现短信发送的原理,这个使用的是j2me的可选包Wireless Messaging API(WMA,JSR120)来进行操作的,这是个敏感API,在未取得授权或认证,使用之前必须提示使用者是否要进行操作。对于有的型号的手机可以直接设置程序是否可以进行短信操作。所以一般来说,不会出现无缘无故发出短信而扣费的情况,除非你设置了总是允许操作这项(相信没几个人会这么做)。当然很多免费短信软件如悠信,XROSE什么的都是利用的这个API啦。由于设置了短信的游戏中目的只是为了收费,而且一般一条短信的价格都不菲,但是很多地方不发短信又无法继续进行游戏,那么,如果想继续免费玩下去,就得对短信操作进行处理。(一般来说发短信和连网不一样,不是必须发才可以实现结果的,同样是进下一关,网络下载就是必须进行的操作,而短信买关就不一样,那关其实是存在的,但是必须进行这一操作才可继续玩)首先是工具,必备的工具就是java反编译软件,UE或 HEX等16进制编辑器,另外为了方便查看字节码还需要jclasslib。首先我们来看一段代码,一般的短信发送都是类似的,当然,你也可以利用这个自己写个免费发短信的东西:)
import java.io.IOException;import java.io.PrintStream;import javax.microedition.io.Connection;import javax.microedition.io.Connector;import javax.wireless.messaging.*;class SMSXX{
String phoneNum = "123456";
String s = "发送的内容";
boolean isSend = false;
void sendSms()
{
MessageConnection messageconnection = null;
try
{
String s1 = "sms://" + phoneNum;
TextMessage textmessage;
(textmessage = (TextMessage)(messageconnection = (MessageConnection)Connector.open(s1)).newMessage("text")).setAddress(s1);
textmessage.setPayloadText(s);
messageconnection.send(textmessage);
doSendOk();
}