微软最近推出下一代移动设备操作体系Windows Mobile 5。Windows Mobile 5在用户体会方面做了许多改善,但更多的改善仍是在运用程序编程接口方面。在这篇文章中,咱们会向您介绍Windows Mobile 5在开发方面的一些新特性,其间包含3D图形编程、新控件、新的API函数等。
开发工具
Windows Mobile 5的开发工具是Visual Studio 2005。假如要开发Windows Mobile 5的运用程序,还需求装Windows Mobile 5的SDK和ActiveSync 4.0。
咱们要在Windows Mobile 5设备上开宣布保管运用程序就需求凭借.NET Compact Framework 2.0的强壮功用。.NET Compact Framework 2.0在1.0的基础上做了较大的改善,为咱们供给了更多的用户控件,比方DateTimePicker、OpenFileDialog、WebBrowser、LinkLabel和Notification等控件。这些控件都是在.NET CF 1.0中所没有供给的,可是由于他们在实践开发进程中会常常用到,到了.NET CF 2.0中,这些功用总算被加了进来。
在数据拜访方面,.NET CF 2.0支撑SQL Mobile 2005的拜访支撑。SQL Mobile 2005的功用增强了许多,支撑多用户一起拜访数据库,也支撑在PC上创立SQL Mobile数据库。Windows Mobile 5的Smartphone版别也支撑SQL Mobile数据库了。在XML支撑方面,.NET CF 2.0支撑XML的Schema、Serialization、XPath等。
在长途拜访方面,.NET CF 2.0支撑MSMQ和.NET Remoting,而在对Socket支撑方面,IPv6现已得到了很好的支撑。
.NET CF 2.0还有一个重要的特性:支撑COM互操作性。咱们可以在.NET程序中可以拜访COM组件,也可以将Callback函数传递给COM组件。可是咱们不能调用ActiveX控件。
在C++移动设备程序开发方面,Visual Studio 2005支撑MFC 8.0、ATL 8.0和规范C++库8.0。咱们也可以在Windows Mobile 2003设备上支撑.NET CF 2.0,但有必要要将.NET CF 2.0的运转库安装到设备上。
用户界面
Windows Mobile 5的Pocket PC用户界面产生了很大改动。为了和Smartphone界面类似,Pocket PC的程序菜单被改成了左右两个,在实践设备上也增加了两个硬件按键和这两个菜单相对应。这样的改动可以让用户方便地经过硬件按键操作运用程序,而这样的修正也便于运用程序在Pocket PC和Smartphone之间的移植。为了坚持兼容性,Pocket PC依然支撑多于两个一级菜单的菜单结构,可是新开发的程序主张仍是选用新的菜单结构。
Windows Mobile 5的运用程序很方便地支撑Notification告诉机制。当运用程序产生改动的时分,咱们可以经过Notification办法来告诉用户。
下面咱们就来经过一个示例,来了解一下.NET CF运用中怎么运用Notification控件。咱们首要来创立一个Windows Mobile 5的运用程序。翻开Visual Studio 2005,挑选File-New-Project,咱们挑选Visual C#中的Pocket PC Magneto,来创立一个Windows Mobile 5 Pocket PC运用程序。需求提示的是在创立项现在,有必要安装好Windows Mobile 5的SDK。
在创立好项目后,咱们在界面编辑器中,为窗体增加MainMenu和Notification两个控件。咱们在MainMenu的一个子菜单的响应函数中增加下面的代码:
private void menuItem5_Click(object sender, EventArgs e)
{
StringBuilder HTMLString = new StringBuilder();
HTMLString.Append();
HTMLString.Append(Submit data?);
HTMLString.Append(
);
HTMLString.Append();
HTMLString.Append();
HTMLString.Append();
//Set the Text property to the HTML string.
notification1.Text = HTMLString.ToString();
notification1.Caption = Notification Demo;
notification1.Critical = false;
// Display icon up to 10 seconds.
notification1.InitialDuration = 10;
notification1.Visible = true;
}
Notification控件支撑HTML格局的文本,所以咱们的示例创立了两个Input控件。然后设置Notification控件的Visible特点为true就可以了。
编译履行后的作用如上图所示。咱们可以看到,Notification现已从Windows Mobile 2003的气泡型窗体变成了从下边呈现的方法。输入法图标也从右下角移到了中心。
Microsoft.WindowsMobile.Forms
Windows Mobile 5为开发者供给了Microsoft.WindowsMobile.Forms类库,该类库为用户供给了调用各种体系功用的对话框。现在该类库为咱们供给了三种自定义对话框,分别是供给照相机功用的CameraCaptureDialog、供给挑选联系人的ChooseContactDialog和供给挑选图片的SelectPictureDialog。
咱们用一个示例来演示Microsoft.WindowsMobile.Forms类库的功用。首要来创立一个Windows Mobile 5的运用程序,渠道类型可以是Pocket PC或Smartphone。为了运用Microsoft.WindowsMobile.Forms类库,咱们需求首要增加引证。咱们在解决方案资源管理器里右击项目称号,在右键菜单中挑选增加引证。咱们在增加引证对话框中,咱们挑选“Microsoft.WindowsMobile.Forms”。
咱们在菜单的响应函数中增加ChooseContactDialog的运用。
private void menuItem1_Click(object sender, EventArgs e)
{
ChooseContactDialog contactPicker = new ChooseContactDialog();
contactPicker.Title = Choose a Contact below:;
contactPicker.ChooseContactOnly = true;
contactPicker.ShowDialog();
}
其实咱们看到ChooseContactDialog的办法非常简略,只需求设置Title后,调用ShowDialog办法就可以显现出下边的对话框。
下边咱们来增加对SelectPictureDialog的引证。
SelectPictureDialog pickerDialog = new SelectPictureDialog();
pickerDialog.Filter = Image Files(*.BMP;*.JPG)|*.BMP;*.JPG;
pickerDialog.InitialDirectory = @\My Device\My Images;
pickerDialog.Title = Select an image file;
pickerDialog.ShowDialog();
咱们首要来设置SelectPictureDialog的过滤器,答应显现JPG和BMP的图片;然后设置初始文件夹;最终调用ShowDialog办法。
下边是SelectPictureDialog显现的作用。
电话、短信和电子邮件
在Windows Mobile 2003中,假如要在.NET程序中拨打电话的话,就需求经过P/Invoke来调用API。到了Windows Mobile 5中,Microsoft.WindowsMobile.Telephony类库为咱们供给了拨打电话的功用。
在运用这个功用之前,咱们有必要增加Microsoft.WindowsMobile.Telephony引证。调用电话功用的代码如下:
Phone phone = new Phone();
phone.Talk(1234567);
程序运转作用如下:
Phone类的办法只要一个Talk办法,所以也只能简略的进行电话拨打。咱们假如想完成一些杂乱的功用,比方监督拨入的电话等,还需求去调用TAPI来完成。
发送短信息和发送电子邮件都需求Microsoft.WindowsMobile.PocketOutlook类库的支撑。PocketOutlook是一个很杂乱的命名空间,包含对许多体系功用的支撑,而支撑发短信的类是SmsMessage。
public void SmsMessageSend()
{
SmsMessage smsMessage = new SmsMessage();
//Set the message body and recipient.
smsMessage.Body = Would you like to meet for lunch?;
smsMessage.To.Add(new Recipient(John Doe, 2065550199));
smsMessage.RequestDeliveryReport = true;
//Send the SMS message.
smsMessage.Send();
return;
}
咱们可以看到SmsMessage的Body特点是SMS短信的内容,而To特点,则是收件人的名字和电话号码,由于支撑多个收件人,所以在增加收件人的时分需求调用To特点的Add办法。RequestDeliveryReport特点是一个Bool值,设置是否要求得到发送陈述。最终调用SmsMessage的Send办法。
发送Email的代码与发送短信息的代码大致类似,可是需求运用的是EmailMessage类。
public void EmailSend()
{
EmailMessage message = new EmailMessage();
message.Subject = The picture you requested;
message.BodyText = Attached is the picture we discussed;
Recipient client = new Recipient(John,john@test.com);
message.To.Add(client);
Attachment image = new Attachment(\test.jpg);
message.Attachments.Add(image);
message.Send(ActiveSync);
}
EmailMessage的Subject特点是电子邮件的标题,BodyText特点是邮件正文。To特点中可以增加收件人的称号和地址。咱们还可以在Attachments特点中增加附件。最终咱们调用Send办法。
联系人、约会和使命
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 = test;
appointment.Body = testtest;
appointment.Start = DateTime.Now;
appointment.End = new DateTime(2005, 7, 17, 16, 25, 0);
session.Appointments.Items.Add(appointment);
// 增加联系人
Contact contact = new Contact();
contact.FirstName = John;
contact.LastName = Lee;
contact.CompanyName = Microsoft;
contact.Email1Address = John@test.com;
contact.MobileTelephoneNumber = 1234567;
contact.IM1Address = John@hotmail.com;
session.Contacts.Items.Add(contact);
// 增加使命
Task task = new Task();
task.Subject = task1;
task.Body = task1 body;
session.Tasks.Items.Add(task);
咱们创立Appointment、Contact和Task目标,然后设置相应的特点,然后增加到OutlookSession目标的相应的特点中。
其他新特性
Windows Mobile 5除了支撑上面的特性外,还支撑一些其他的新特性。比方在图象显现方面,Windows Mobile 5支撑DirectX 3D Mobile。.NET运用程序可以经过Microsoft.WindowsMobile.DirectX类库来调用D3D Mobile,而C++运用程序可以经过COM接口的办法来调用。
在Windows Mobile设备上遍及运用的GPS全球定位体系也得到了更好的支撑。Windows Mobile 5供给了GPS Intermediate Driver,使运用程序可以运用一致的API接口来调用GPS体系。
Windows Mobile 5供给了一个叫做“ExitWindowsEx”的函数,答应软件重启操作体系。Pocket PC运用该函数可以重启体系,而Smartphone支撑关机和重启两种功用。
在数据库方面,SQL Mobile尽管被广泛运用,可是由于SQL Mobile没有被安装到ROM中。所以假如需求SQL Mobile就需求占用一部分RAM内存空间,关于一些轻量级的运用就显得不是很适宜了。所以Windows Mobile中还包含一个轻量级的数据库EDB,该数据库是CEDB的晋级。
写在最终
在这篇文章里,咱们领会了Windows Mobile 5为开发者供给的新特性。许多常用的特性都被参加到了API中。可是咱们还要看到,许多新特性关于杂乱的运用来说,还比较简略。假如想完成比较杂乱的功用,还需求依托自定义控件来完成。
最终也期望这篇文章可以协助开发者们了解Windows Mobile 5的开发新特性。