1、撥打到電話
如果要在.NET程式中撥打到電話的話,就需要通過P/Invoke來調用API。
到了Windows Mobile 5以上的版本中,Microsoft.WindowsMobile.Telephony類庫為我們提供了撥打到電話的功能。
在使用這個功能之前,我們必須添加Microsoft.WindowsMobile.Telephony引用。調用電話功能的代碼如下:
Phone phone = new Phone();
phone.Talk("撥打的電話號碼");
Phone類的方法只有一個Talk方法,所以也只能簡單的進行電話撥打。我們如果想實現一些複雜的功能,比如監視撥入的電話等,還需要去調用TAPI來實現。
2、發送訊息
傳送簡訊息和寄送電子郵件都需要Microsoft.WindowsMobile.PocketOutlook類庫的支援。
PocketOutlook是一個很複雜的命名空間,包括對很多系統功能的支援,而支援發簡訊的類是SmsMessage。
public void SmsMessageSend()
{
SmsMessage smsMessage = new SmsMessage();
smsMessage.Body = "發送內容";
smsMessage.To.Add(new Recipient("連絡人姓名", "連絡人電話"));
smsMessage.RequestDeliveryReport = true;
smsMessage.Send();//發送
return;
}
SmsMessage的Body屬性是SMS簡訊的內容,而To屬性,則是收件者的姓名和電話號碼,
因為支援多個收件者,所以在添加收件者的時候需要調用To屬性的Add方法。RequestDeliveryReport屬性是一個Bool值,設定是否要求得到發送報告。
最後調用SmsMessage的Send方法。
3、發送Email
發送Email的代碼與傳送簡訊息的代碼大致相似,但是需要使用的是EmailMessage類。
public void EmailSend()
{
EmailMessage message = new EmailMessage();
message.Subject = "標題";
message.BodyText = "郵件內容";
Recipient client = new Recipient("姓名","Email地址");
message.To.Add(client);
Attachment image = new Attachment("添加的附件");
message.Attachments.Add(image);
message.Send("ActiveSync");
}
EmailMessage的Subject屬性是電子郵件的標題,BodyText屬性是郵件內文。To屬性中可以添加收件者的名稱和地址。我們還可以在Attachments屬性中添加附件。
最後我們調用Send方法。
4、連絡人、約會和任務
Windows Mobile中有三個很重要的程式:連絡人、約會和任務。
我們可以使用Microsoft.WindowsMobile.PocketOutlook類庫,來調用系統中的連絡人、約會和任務資訊。我們可以通過自己的程式添加資訊。
我們先來看一下Microsoft.WindowsMobile.PocketOutlook命名空間中很重要的一個類OutlookSession。
該類的一個對象就表示了一個Pocket Outlook 對象模組,以前我們需要調用POOM實現的功能,現在可以通過PocketOutlook來實現。
屬性說明:
Appointments 得到約會(Calendar)目錄的資訊。
Contacts 得到連絡人目錄資訊。
EmailAccounts 得到Email帳號的集合。
SmsAccount 得到SMS帳號的資訊。
Tasks 得到任務目錄資訊的集合。
在使用OutlookSession的時候要先建立一個OutlookSession的對象,然後建立相應的對象並添加到OutlookSession相應屬性中去。
OutlookSession session = new OutlookSession();
// 添加約會
Appointment appointment = new Appointment();
appointment.Subject = "標題";
appointment.Body = "內容";
appointment.Start = DateTime.Now;
appointment.End = new DateTime(2011, 8, 8, 12, 12, 0);
session.Appointments.Items.Add(appointment);
// 新增連絡人...
Contact contact = new Contact();
contact.FirstName = "John";
contact.LastName = "Lee";
contact.CompanyName = "公司名稱";
contact.Email1Address = "Email";
contact.MobileTelephoneNumber = "電話號碼";
contact.IM1Address = "地址";
session.Contacts.Items.Add(contact);
// 新增工作
Task task = new Task();
task.Subject = "標題";
task.Body = "內容";
session.Tasks.Items.Add(task);
我們建立Appointment、Contact和Task對象,然後設定相應的屬性,然後添加到OutlookSession對象的相應的屬性中。
5、其他新特性
Windows Mobile除了支援上面的特性外,還支援一些其他的新特性。比如在圖象顯示方面,Windows Mobile支援DirectX 3D Mobile。.NET應用程式可以通過Microsoft.WindowsMobile.DirectX類庫來調用D3D Mobile,而C++應用程式可以通過COM介面的方式來調用。
在Windows Mobile裝置上普遍使用的GPS全球定位系統也得到了更好的支援。Windows Mobile提供了GPS Intermediate Driver,使應用程式可以使用統一的API介面來調用GPS系統。
Windows Mobile提供了一個叫做“ExitWindowsEx”的函數,允許軟體重啟作業系統。Pocket PC使用該函數可以重啟系統,而Smartphone支援關機和重啟兩種功能。
在資料庫方面,SQL Mobile雖然被廣泛使用,但是因為SQL Mobile沒有被安裝到ROM中。所以如果需要SQL Mobile就需要佔用一部分RAM記憶體空間,對於一些輕量級的應用就顯得不是很合適了。所以Windows Mobile中還包括一個輕量級的資料庫EDB,該資料庫是CEDB的升級。
Windows Mobile為開發人員提供的新特性。很多常用的特性都被加入到了API中。但是我們還要看到,許多新特性對於複雜的應用來說,還比較簡單。如果想實現比較複雜的功能,還需要依靠自訂控制項來實現。