饒榮慶 -- 您今天UCWEB了嗎?--http://www.ucweb.com

          3G 手機(jī)開(kāi)發(fā)網(wǎng)

             :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
          這幾天由于公司的需要,見(jiàn)到有些同事用手機(jī)刷卡,覺(jué)得很痛苦。
          今天早上回來(lái)就產(chǎn)生了一個(gè)想法,不如用j2me實(shí)現(xiàn)一個(gè)短信發(fā)送機(jī)的程序,然后只需要填入幾個(gè)數(shù)字就可以實(shí)現(xiàn)短信的自動(dòng)發(fā)送等。
          經(jīng)過(guò)大概2個(gè)小時(shí)的奮斗,終于寫(xiě)好了,并且在多部不同品牌的機(jī)器運(yùn)行良好,而且很實(shí)用,不過(guò)可以有些手機(jī)需要數(shù)字簽名,否則的話(huà),會(huì)不停的提示你。郁悶,不過(guò)索愛(ài)跟三星就可以設(shè)置。
          現(xiàn)在公布源代碼跟按照文件
          先讓大家看個(gè)圖
           

          java 代碼
          1. /********************************************************************
          2. * 項(xiàng)目名稱(chēng) :j2me學(xué)習(xí)
          3. *
          4. * Copyright 2005-2006 Wuhua. All rights reserved
          5. ********************************************************************/
          6. package org.fox.sms;

          7. import java.io.IOException;

          8. import javax.microedition.io.Connector;
          9. import javax.microedition.lcdui.Command;
          10. import javax.microedition.lcdui.CommandListener;
          11. import javax.microedition.lcdui.Displayable;
          12. import javax.microedition.lcdui.Form;
          13. import javax.microedition.lcdui.TextField;
          14. import javax.wireless.messaging.MessageConnection;
          15. import javax.wireless.messaging.TextMessage;

          16. /**
          17. * 類(lèi)名:SMSForm.java
          18. * 編寫(xiě)日期: 2007-5-25
          19. * 程序功能描述:
          20. * Demo:
          21. * Bug:
          22. *
          23. * 程序變更日期 :
          24. * 變更作者 :
          25. * 變更說(shuō)明 :
          26. *
          27. * @author wuhua
            rrq12345@163.com
          28. */
          29. public class SMSForm extends Form
          30. implements CommandListener, Runnable{

          31. Command send = new Command("發(fā)送", Command.OK, 1);
          32. Command back = new Command("返回", Command.BACK, Command.BACK);
          33. TextField phone;
          34. TextField content;
          35. TextField num;
          36. TextField timeOut;
          37. TextField text;
          38. String serverPort = "5000";// getAppProperty("serverPort");
          39. int sms;

          40. Menu menu;
          41. public SMSForm(Menu m) {
          42. super("短信發(fā)送機(jī)");

          43. setCommandListener(this);
          44. text = new TextField("狀態(tài)", "等待發(fā)送短信", 20, TextField.ANY);
          45. phone = new TextField("號(hào)碼", "XXXX:", 20, TextField.NUMERIC);
          46. content = new TextField("指令", "777", 10, TextField.NUMERIC);
          47. num = new TextField("條數(shù)", "23", 10, TextField.NUMERIC);
          48. timeOut = new TextField("時(shí)間格", "10", 10, TextField.NUMERIC);
          49. this.append(phone);
          50. this.append(content);
          51. this.append(num);
          52. this.append(timeOut);
          53. this.append(text);
          54. this.addCommand(send);
          55. this.addCommand(back);
          56. this.menu = m;

          57. }

          58. public void commandAction(Command c, Displayable arg1) {
          59. if(c == send){
          60. new Thread(this).start();
          61. this.removeCommand(send);
          62. }else{
          63. SMSSenderMIDlet.display.setCurrent(menu);
          64. }

          65. }

          66. public void run() {
          67. int num = Integer.parseInt(this.num.getString());
          68. int sleep = Integer.parseInt(this.timeOut.getString());
          69. while(true){
          70. //System.out.println(sleep);
          71. if(sms < num){
          72. senderImpl();
          73. }
          74. else{

          75. SMSSenderMIDlet.display.setCurrent(menu);
          76. break;
          77. }
          78. try {
          79. //System.out.println(sleep);
          80. Thread.sleep(sleep*1000);
          81. //System.out.println(sleep);
          82. } catch (InterruptedException e) {
          83. e.printStackTrace();
          84. }

          85. }


          86. }

          87. private void senderImpl() {
          88. String addr = "sms://" + phone.getString();
          89. System.out.println("發(fā)送地址為:" + addr);
          90. MessageConnection conn;
          91. try {
          92. conn = (MessageConnection) Connector.open(addr);
          93. TextMessage msg = (TextMessage) conn
          94. .newMessage(MessageConnection.TEXT_MESSAGE);
          95. msg.setPayloadText(content.getString());
          96. conn.send(msg);
          97. conn.close();
          98. sms++;
          99. //text = sms+"";
          100. text.setString("成功發(fā)送" +this.num.getString() + "第" + sms + "條");

          101. } catch (IOException e) {
          102. // TODO 自動(dòng)生成 catch 塊
          103. e.printStackTrace();
          104. }
          105. }

          106. }



          107. /********************************************************************
          108. * 項(xiàng)目名稱(chēng) :j2me學(xué)習(xí)
          109. *
          110. * Copyright 2005-2006 Wuhua. All rights reserved
          111. ********************************************************************/
          112. package org.fox.sms;

          113. import javax.microedition.lcdui.Command;
          114. import javax.microedition.lcdui.CommandListener;
          115. import javax.microedition.lcdui.Displayable;
          116. import javax.microedition.lcdui.List;

          117. /**
          118. * 類(lèi)名:Menu.java
          119. * 編寫(xiě)日期: 2007-5-25
          120. * 程序功能描述:
          121. * Demo:
          122. * Bug:
          123. *
          124. * 程序變更日期 :
          125. * 變更作者 :
          126. * 變更說(shuō)明 :
          127. *
          128. * @author wuhua
            rrq12345@163.com
          129. */
          130. public class Menu extends List implements CommandListener{

          131. Command send = new Command("打開(kāi)發(fā)送機(jī)", Command.OK, 1);
          132. public Menu(String title, int listType) {
          133. super(title, listType);

          134. this.append("打開(kāi)發(fā)送機(jī)", null);
          135. this.addCommand(send);
          136. this.setCommandListener(this);
          137. }

          138. public void commandAction(Command c, Displayable d) {
          139. System.out.println("dfsdfsd");
          140. if(c == send){
          141. SMSSenderMIDlet.display.setCurrent(new SMSForm(this));
          142. }else{

          143. }
          144. }

          145. }


          146. /********************************************************************
          147. * 項(xiàng)目名稱(chēng) :j2me學(xué)習(xí)
          148. *
          149. * Copyright 2005-2006 Wuhua. All rights reserved
          150. ********************************************************************/
          151. package org.fox.sms;

          152. import java.io.IOException;

          153. import javax.microedition.io.Connector;
          154. import javax.microedition.lcdui.Choice;
          155. import javax.microedition.lcdui.Display;
          156. import javax.microedition.midlet.MIDlet;
          157. import javax.microedition.midlet.MIDletStateChangeException;
          158. import javax.wireless.messaging.MessageConnection;

          159. /**
          160. * 類(lèi)名:SMSSenderMIDlet.java
          161. * 編寫(xiě)日期: 2007-5-25
          162. * 程序功能描述:
          163. * Demo:
          164. * Bug:
          165. *
          166. * 程序變更日期 :
          167. * 變更作者 :
          168. * 變更說(shuō)明 :
          169. *
          170. * @author wuhua
            rrq12345@163.com
          171. */
          172. public class SMSSenderMIDlet extends MIDlet {
          173. private MessageConnection sconn;

          174. public static Display display;
          175. public SMSSenderMIDlet() {


          176. }

          177. protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
          178. try {
          179. sconn.close();
          180. } catch (IOException e) {
          181. // TODO 自動(dòng)生成 catch 塊
          182. e.printStackTrace();
          183. }

          184. }

          185. protected void pauseApp() {


          186. }

          187. protected void startApp() throws MIDletStateChangeException {
          188. String serverPort = "5000";
          189. try {
          190. sconn = (MessageConnection) Connector.open("sms://:" + serverPort);
          191. } catch (IOException e) {

          192. e.printStackTrace();
          193. }

          194. Menu m = new Menu("短信發(fā)送機(jī)",Choice.IMPLICIT);
          195. display = Display.getDisplay(this);
          196. display.setCurrent(m);

          197. }

          198. }




          爬蟲(chóng)工作室 -- 專(zhuān)業(yè)的手機(jī)軟件開(kāi)發(fā)工作室
          3G視線 -- 專(zhuān)注手機(jī)軟件開(kāi)發(fā)
          posted on 2007-05-25 21:32 3G工作室 閱讀(1956) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): j2me

          Feedback

          # re: 短信發(fā)送機(jī)的實(shí)現(xiàn) 2007-10-15 12:55 過(guò)敏
          厲害啊  回復(fù)  更多評(píng)論
            

          # re: 短信發(fā)送機(jī)的實(shí)現(xiàn) 2007-11-29 15:34 11
          你這是調(diào)用的標(biāo)準(zhǔn)WMA,幾乎所有的三星手機(jī)都不支持的,請(qǐng)問(wèn)你是咋通過(guò)測(cè)試的?  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 陈巴尔虎旗| 务川| 南溪县| 大关县| 平乡县| 扶余县| 眉山市| 定襄县| 桦川县| 新巴尔虎右旗| 定西市| 略阳县| 金阳县| 汉寿县| 沁水县| 邻水| 武强县| 澜沧| 团风县| 玛纳斯县| 垫江县| 焉耆| 雷波县| 瓦房店市| 霸州市| 钦州市| 清水河县| 栾川县| 成都市| 台中市| 平安县| 左云县| 图片| 承德县| 康乐县| 金昌市| 浦北县| 乐安县| 河曲县| 伊通| 罗山县|