在windows phone 的程序中,为了安全性的考虑,其架构设计之初就强调必须运行在一个独立的沙箱之中,因为windows phone的开发过程中不允许直接调用手机的内置的应用程序如打电话,发信息等,但是在大多数情况下,我们有必要去使用这些功能,于是Windows Phone SDK中就提供了两种称为启动器和选择器的方式来使用这些功能,而编程中这些功能被称为Task,在编程使用后,运行程序的时候需要用户手动确认,所以要在编程之前添加命名空间:Microsoft.Phone.Tasks,他们有一个共同的方法Show来显示相对应的应用程序,以供用户选择。

要注意的是,当我们调用启动器的时候,实际上已经离开了原来的程序,在这种情况下,原始代码将不再运行,所以要做好数据的保存。由于模拟器等诸多限制,在这里不打算做实例的介绍。

目前SDK中常用的启动器:

EmailComposeTask

PhoneCallTask

SearchTask

SmsComposeTask

WebBrowserTask

MediaPlayerLauncher

MarketplaceDetailTask

MarketplaceHubTask

MarketplaceReviewTask

MarketplaceSearchTask

ConnectionSettingsTask

ShareLinkTask

ShareStatusTask

BingMapsTask

BingMapsDirectionsTask

EmailComposeTask

EmailComposeTask:使用电子邮件撰写任务可使用户能够通过您的应用程序发送电子邮件。该任务可启动电子邮件应用程序并显示新的电子邮件。您可以选择指定预填充到新邮件中的收件人、邮件主题和邮件正文。您还可以指定新邮件的代码页。仅当用户按下发送按键时,邮件才会发送。

属性:

Bcc获取或设置新电子邮件中“密件抄送”行的收件人。

Body获取或设置新电子邮件的正文。

Cc获取或设置新电子邮件中“抄送”行的收件人。

CodePage获取或设置将用于显示邮件内容的字符集。

Subject获取或设置新电子邮件的主题。

To获取或设置新电子邮件中“收件人”行的收件人。

使用方式:

            EmailComposeTask emailComposeTask = new EmailComposeTask();

            emailComposeTask.Subject = "test";//主题
            emailComposeTask.Body = "this is testing...";//主体
            emailComposeTask.To = "recipient@example.com";//收件人
            emailComposeTask.Cc = "cc@example.com";//获取或设置新电子邮件中“抄送”行的收件人。
            emailComposeTask.Bcc = "bcc@example.com";//获取或设置新电子邮件中“密件抄送”行的收件人。

            emailComposeTask.Show();//显示应用程序

注意:由于调用邮件应用程序需要在手机上设置邮箱账号,所以模拟器可能无法测试。

PhoneCallTask

PhoneCallTask:使用通话任务可使用户能够通过您的应用程序拨打电话。通话任务启动“手机”应用程序并显示您指定的手机号码和显示名称。

属性:

DisplayName获取或设置启动“手机”应用程序时显示的名称。

PhoneNumber获取或设置启动“手机”应用程序时拨打的电话号码。

使用方法:

            PhoneCallTask phoneCallTask = new PhoneCallTask();

            phoneCallTask.PhoneNumber = "12345667";//电话号码
            phoneCallTask.DisplayName = "xiaoming";//显示的名字

            phoneCallTask.Show();

注意:在 Windows Phone 模拟器中,发现的电话呼叫会始终保持连接,但是此连接是在模拟器中模拟执行的。模拟器使用假的 GSM 并且始终都具有假的用户身份识别模块 (SIM) 卡。

SearchTask

SearchTask 使用搜索任务可以启动 Web 搜索应用程序,并执行您指定的搜索。

属性:

SearchQuery获取或设置“Web 搜索”应用程序将在启动时使用的搜索查询。

使用方法:

            SearchTask searchTask = new SearchTask();

            searchTask.SearchQuery = "Microsoft";//需要搜索的关键字

            searchTask.Show();

SmsComposeTask

SmsComposeTask 使用短信撰写任务使用户可以通过应用程序发送消息。短信撰写任务启动“短信”应用程序,并显示一条新短信。

属性:

Body获取或设置新短信的正文文本。

To获取或设置新短信的收件人列表。

使用方法:

            SmsComposeTask smsComposeTask = new SmsComposeTask();

            smsComposeTask.To = "1551111111";//收件人
            smsComposeTask.Body = "吃了没?";//消息主体

            smsComposeTask.Show();

注意:

在 Windows Phone 模拟器上,短信始终显示为成功发送,但实际并未发送消息。模拟器使用假的 GSM 并且始终都具有假的用户身份识别模块 (SIM) 卡。

WebBrowserTask

WebBrowserTask 使用 Web 浏览器任务可以启动 Web 浏览器应用程序,并显示我们指定的 URL。

属性:

Uri获取或设置“Web 浏览器”应用程序将在启动时导航到的 URI。

URL过时。 获取或设置“Web 浏览器”应用程序将在启动时导航到的 URL。

使用方法:

            WebBrowserTask webBrowserTask = new WebBrowserTask();

            webBrowserTask.Uri = new Uri("http://www.baidu.com", UriKind.Absolute);//url

            webBrowserTask.Show();

MediaPlayerLauncher

MediaPlayerLauncher 使用媒体播放器启动器可以启动媒体播放器,并播放您指定的媒体文件。您必须指定文件的名称和位置。您可以选择通过使用控件的按位组合,指定一个或多个媒体播放器控件,例如,快退和停止。您还可以指定在启动媒体播放器时要使用的首选方向。

属性:

Controls获取或设置确定媒体播放器应用程序中显示的控件的标记。取值为MediaPlaybackControls 枚举的值:

None无控件。

Pause暂停控件。

Stop停止控件。

FastForward快进控件。

Rewind后退控件。

Skip跳过控件。

All所有控件。可以使用 OR (即符号|)来使用多个值。

Location设置要播放的媒体文件的位置。MediaLocationType 枚举用于指定独立存储或应用程序的安装文件夹。取值为MediaLocationType 枚举的值:None媒体项目均不在数据存储中。如果使用该值,Show 方法将引发 FileNotFoundException。

Install媒体文件在应用程序的安装目录中。

Data媒体文件在独立存储中。

Media获取或设置使用媒体播放器应用程序播放的媒体,类型为Uri。

Orientation获取或设置媒体播放器启动时将显示的方向。取值为MediaPlayerOrientation 枚举的值:

Landscape横向。

Portrait纵向。

使用方式:

            MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();

            mediaPlayerLauncher.Media = new Uri("test.wmv", UriKind.Relative);//媒体路径
            mediaPlayerLauncher.Location = MediaLocationType.Install;//媒体文件在应用程序的安装目录中。
            mediaPlayerLauncher.Controls = MediaPlaybackControls.Pause | MediaPlaybackControls.Stop;//显示暂停和停止按钮
            mediaPlayerLauncher.Orientation = MediaPlayerOrientation.Landscape;//横向显示

            mediaPlayerLauncher.Show();

注意:

在 Windows Phone 模拟器上,应用程序可以启动媒体播放器,并且用户可以播放音乐,但是不会呈现视频。另外,对于独立存储中存储的媒体文件,使用 MediaLocationType.Data。对于应用程序项目中包含的媒体文件,请使用 MediaLocationType.Install。它们捆绑在 .xap 文件中,并存储在应用程序的安装目录中。

有些时候,我们需要查看自己在应用商店中的一些信息,这时使用MarketPlace有关的任务。下面是一些关于Marketplace的一些Launcher。

MarketplaceDetailTask

MarketplaceDetailTask 使用商城详细信息任务可以启动 Windows Phone 商城 客户端应用程序,并显示指定应用程序的详细信息页面。如果没有指定应用程序,将显示调用应用程序的详细信息页面。

属性:

ContentIdentifier获取或设置要显示的产品的唯一标识符。

ContentType获取或设置在 Windows Phone 商城 客户端应用程序中显示的内容类型。取值为MarketplaceContentType 枚举的值:

Applications应用程序内容。

Music音乐内容。

使用方式:

            MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();

            marketplaceDetailTask.ContentIdentifier = "c14e93aa-27d7-df11-a844-00237de2db9e";//唯一标识符
            marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;//打开应用程序

            marketplaceDetailTask.Show();

注意:

在 Windows Phone 模拟器上,应用程序可以启动媒体播放器,并且用户可以播放音乐,但是不会呈现视频。另外,对于独立存储中存储的媒体文件,使用 MediaLocationType.Data。对于应用程序项目中包含的媒体文件,请使用 MediaLocationType.Install。它们捆绑在 .xap 文件中,并存储在应用程序的安装目录中。

有些时候,我们需要查看自己在应用商店中的一些信息,这时使用MarketPlace有关的任务。下面是一些关于Marketplace的一些Launcher。

MarketplaceDetailTask

MarketplaceDetailTask 使用商城详细信息任务可以启动 Windows Phone 商城 客户端应用程序,并显示指定应用程序的详细信息页面。如果没有指定应用程序,将显示调用应用程序的详细信息页面。

属性:

ContentIdentifier获取或设置要显示的产品的唯一标识符。

ContentType获取或设置在 Windows Phone 商城 客户端应用程序中显示的内容类型。取值为MarketplaceContentType 枚举的值:

Applications应用程序内容。

Music音乐内容。

使用方式:

            MarketplaceHubTask marketplaceHubTask = new MarketplaceHubTask();

            marketplaceHubTask.ContentType = MarketplaceContentType.Music;//直接打开marketplace中有关音乐的页面

            marketplaceHubTask.Show();

MarketplaceReviewTask

MarketplaceReviewTask 使用商城评价任务可以启动 Windows Phone 商城 客户端应用程序,并显示当前应用程序的评论页面。

没有属性

使用方式:

            MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask();

            marketplaceReviewTask.Show();

注意:

用户必须拥有 Windows Live ID 才能编写评论。在 Windows Phone 模拟器上,由于没有 Windows Live ID,当您启动打分并评价页面时会出现错误。

MarketplaceSearchTask

MarketplaceSearchTask 使用商城搜索任务可以启动 Windows Phone 商城 客户端应用程序,并显示按指定的搜索条件获得的搜索结果。您可以指定要搜索的内容类型,例如音乐或应用程序。

属性:

ContentType获取或设置在 Windows Phone 商城 客户端应用程序中显示的内容类型。

SearchTerms获取或设置搜索术语。

使用方式:

            MarketplaceSearchTask marketplaceSearchTask = new MarketplaceSearchTask();

            marketplaceSearchTask.ContentType = MarketplaceContentType.Applications | MarketplaceContentType.Music;//最好明确搜索的内容类型,是属于音乐还是应用程序。
            marketplaceSearchTask.SearchTerms = "facebook";//设置搜索关键字

            marketplaceSearchTask.Show();

ConnectionSettingsTask

ConnectionSettingsTask 使用连接设置任务使用户能够调整设备的网络连接设置。

属性:

ConnectionSettingsType获取或设置将显示的网络连接设置的类型。取值是ConnectionSettingsType 枚举的值:

WiFiWi-Fi 设置

Bluetooth蓝牙设置

Cellular手机网络设置

AirplaneMode飞行模式设置

使用方式:

 ConnectionSettingsTask connectionSettingsTask = new ConnectionSettingsTask();
            connectionSettingsTask.ConnectionSettingsType = ConnectionSettingsType.WiFi;//设置Wi-Fi连接
            connectionSettingsTask.Show();

ShareLinkTask

ShareLinkTask使用共享链接任务可使用户能够在其所选的社交网络上共享链接。

属性:

LinkUri获取或设置将在链接共享对话框中显示的链接 URI。

Message获取或设置共享时将伴随链接的消息。

Title获取或设置要共享的链接的标题。

使用方式:

            ShareLinkTask shareLinkTask = new ShareLinkTask();

            shareLinkTask.Title = "百度";//设置标题
            shareLinkTask.LinkUri = new Uri("http://www.baidu.com", UriKind.Absolute);//设置共享的链接
            shareLinkTask.Message = "百度在这里";//设置共享时将伴随链接的消息。

            shareLinkTask.Show();

ShareStatusTask

ShareStatusTask使用共享状态任务可使用户能够在其所选的社交网络上共享状态消息。

属性:

Status获取或设置要共享的状态消息。

使用方法:

            ShareStatusTask shareStatusTask = new ShareStatusTask();

            shareStatusTask.Status = "test";//状态信息

            shareStatusTask.Show();

ShareStatusTask

ShareStatusTask使用共享状态任务可使用户能够在其所选的社交网络上共享状态消息。

属性:

Status获取或设置要共享的状态消息。

使用方法:

            BingMapsTask bingMapsTask = new BingMapsTask();

            bingMapsTask.SearchTerm = "play";
            bingMapsTask.ZoomLevel = 3;//设置缩放级别为3

            bingMapsTask.Show();

注意:如果设备所在的位置不支持 Bing 地图应用程序,则该应用程序不会启动。取而代之的是向用户显示一个对话框,说明 Bing 地图在他们所在的位置不可用。

BingMapsDirectionsTask

BingMapsDirectionsTask, Bing 地图路线任务启动 Bing 地图应用程序并显示两点之间的行车路线。您可以同时指定起点和终点,也可以仅指定一点;在第二种情况下,将用户的当前位置用作另一点。起点和终点包含字符串标签和指定位置经度和纬度的地理坐标。如果省略地理坐标,则 Bing 地图应用程序使用标签字符串作为搜索条件。

常用属性:

End显示的行车路线的结束位置。

Start显示的行车路线的开始位置。

上述二者的值的类型为LabeledMapLocation 类,这个类表述一个地理坐标以及标识它的关联标签,如公司的位置以及公司名称;这个类有一个构造函数public LabeledMapLocation(string label,GeoCoordinate location),其属性就是Label获取或设置标识关联的地理位置的文本标签。Location获取或设置与标记的地图位置关联的地理坐标。

使用方法:

            BingMapsDirectionsTask bingMapsDirectionsTask = new BingMapsDirectionsTask();

            LabeledMapLocation spaceNeedleLML = new LabeledMapLocation("test", null);//创建类LabeledMapLocation,标识结尾

            bingMapsDirectionsTask.End = spaceNeedleLML;

            bingMapsDirectionsTask.Show();

注意:如果设备所在的位置不支持 Bing 地图应用程序,则该应用程序不会启动。取而代之的是向用户显示一个对话框,说明 Bing 地图在他们所在的位置不可用。同时,我们至少必须指定一个 Start 或 End,否则当您调用 Show 方法时会引发异常。