public void Send(SmsMessage message);
message参数的类型是SmsMessage,表示一条SMS消息,当调用了Send方法后,该消息将被发送。因此,在发送短消息之前,还需要构造SmsMessage的对象。
SmsMessage类提供了三个实例构造器,其中最有用的一个就要算下面提到的这个了。使用该构造器可以构造一个完全可以直接发送的SMS消息对象。
public SmsMessage(
string recipientPhoneNumber,
string message
);
其中recipientPhoneNumer参数为字符串形式的收信方电话号码,message参数就是用户需要发送的消息主体了。
下面的例子演示了如何使用SmsAccount对象来完成发送短信息的任务。
首先创建一个基于Windows Mobile 5.0 Pocket PC的Devices项目,然后为项目添加对Microsoft.WindowsMobile.PocketOutlook.dll程序集的引用,并为窗体添加一个OutlookSession类型的私有域(名为m_outlookSession),同时分别在窗体的构造器和Dispose方法中对其进行创建和释放。
构造如图1所示的用户界面。其中上面的“Receiver Number”文本框名为m_txtReceiver,用于输入接收方的手机号码。下面的“Message”文本框名为m_txtMesage,用于输入要发送的消息内容,其Multiline属性为true,用于输入多行文字。最下面的按钮名为m_btnSend,用来发送填写好的短信息。
图1 SMS消息发送程序界面 。
为Send按钮的Click事件添加如下所示的事件处理方法,完成短信息的发送。
private void m_btnSend_Click(object sender, EventArgs e)
{
try
{
// 构造短信息对象
SmsMessage msg = new SmsMessage(
m_txtReceiver.Text,
m_txtMesage.Text);
// 使用OutlookSession中的SMS帐户进行发送
m_outlookSession.SmsAccount.Send(msg);
// 向用户提示发送成功的信息
MessageBox.Show(
"Your message has been sent.",
"Send",
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk,
MessageBoxDefaultButton.Button1);
// 清空两个文本框,以备填写下一条消息
m_txtReceiver.Text = String.Empty;
m_txtMesage.Text = String.Empty;
}
catch (Exception ex)
{
MessageBox.Show(
String.Format("Error: {0}", ex.Message),
"Send",
MessageBoxButtons.OK,
MessageBoxIcon.Hand,
MessageBoxDefaultButton.Button1);
}
}
因为SMS消息的发送过程可能会出现异常(如接收方号码填写不正确等),因此整个过程被放入了一个try-catch语句块中。
在这里首先使用前面提到过的SmsMessage类的构造器,构造一个具有指定接收方电话号码和指定内容的SMS消息对象,然后通过调用SmsAccount类的Send方法完成发送。
这里的SmsAccount对象来自于OutlookSession对象,当然SmsMessage类自身也提供了一个Send方法,因此还可以避开使用OutlookSession对象,但效果是同样的。
运行这个程序,并填写对方号码和一些文字。单击“Send”按钮后,当出现表示发送成功的对话框后,稍待片刻接收方的手机便会收到这里发送的消息。
如果在这里实现对m_txtMessage文本框中的文字进行处理,还可以提供更多功能,例如为消息体添加签名等