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文本框中的文字進行處理,還可以提供更多功能,例如爲消息體添加簽名等