发表时间:2007-08-19
最后修改:2009-06-03
硬件:
- Windows Mobile 5或者6的智能电话一部
- 可以发送短信息的SIM卡一张(路人甲:废话! me: -。-# 偶只想说详细点怒。。。)
- 电脑一台(路人乙:靠!正经点! me: -。-!哦~~!)
- 连接手机和电脑的USB连接线一根
- 另外一台手机接收信息
软件:
按缺省值安装。。。(路人丙: NND!这么多东西啊! me: 微软怒。。。-。-#。。。
接下来打开VS,可以发现有个新的项目类型: SMS Service
建立新项目AIRSMS(为什么取这个名字哦?O.o 保密。。。)
生成的Form1.cs中包括了所有的boiler-plate代码。
c# 代码
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using MSRI.SmsService;
- using MSRI.HelperClasses;
- namespace AIRSMS
- {
- public partial class AIRSMSClient : Form
- {
- public SmsServiceClass SmsService = null;
- public AIRSMSClient()
- {
- InitializeComponent();
- try
- {
- SmsService = new SmsServiceClass("AIRSMS");
- SmsService.OnDeliveryReportReceived += new OnDeliveryReportDelegate(SmsService_OnDeliveryReportReceived);
- SmsService.OnSmsReceived += new OnSmsReceivedDelegate(SmsService_OnSmsReceived);
-
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- Application.Exit();
- }
- }
-
-
-
-
- SmsResponseClass SmsService_OnSmsReceived(SmsClass SmsMessage)
- {
-
-
- SmsResponseClass Response = new SmsResponseClass();
- SmsClass SmsItem = new SmsClass();
- SmsItem.Body = "Your Response";
- SmsItem.Number = SmsMessage.Number;
- Response.AddResponseSms(SmsItem);
- return Response;
- }
-
-
-
-
- void SmsService_OnDeliveryReportReceived(DeliveryReportClass DeliveryReport)
- {
- if (DeliveryReport.Status == DeliveryStatusEnum.Sent)
- {
-
- Console.WriteLine("msg sent!");
- }
- else
- {
-
- Console.WriteLine(DeliveryReport.MessageID + " -- " + DeliveryReport.Status);
- }
- }
- }
- }
SmsService_OnSmsReceived 是处理收到短信息的时候的method
SmsService_OnDeliveryReportReceived 是处理发送成功后的method
c# 代码
- SmsService = new SmsServiceClass("AIRSMS");
- SmsService.OnDeliveryReportReceived += new OnDeliveryReportDelegate(SmsService_OnDeliveryReportReceived);
- SmsService.OnSmsReceived += new OnSmsReceivedDelegate(SmsService_OnSmsReceived);
这里是设置这些事件的delegate。
现在在Form1的设计模式中,拖进一个textbox (txtSMS)和一个button。在button的click事件的时候我们发送textbox里面的txt到指定的手机号码:
c# 代码
- private void btnSend_Click(object sender, EventArgs e)
- {
- SmsClass smsMO = new SmsClass();
- smsMO.Body = txtSMS.Text + " -- dev by Codelicious...";
- smsMO.Number = "138xxx88999";
- SmsService.SendSms(smsMO);
- }
路人丁: 好牛X的手机号码啊。。。卖不? me:-。-# 不是偶滴号码。。。纯test用。。。
这里就把txtSMS的text发到指定的手机号码了。 “ -- dev by Codelicious...” 是另外加的信息, 可以是广告什么的, 嘿嘿!
运行。。。 然后输入你的信息。。。 然后按button, 嘿, 很快另外那台手机就收到sms了。
当然, 这是第一步, 还有很多功能可以增加, 比如validation,msg历史等等。。。
P.S. 放到flex圈里是有原因的, 接下来的几篇看了就知道了。。。(当然是如果能成功的话。。。^O^//)