【IT168技术】为了实现隔离,Windows Phone 7平台不提供应用程序直接访问某些手机功能,如联系人,发送邮件或拍照,这些功能都通过沙盒的形式提供,但是,当合法应用程序需要直接访问这些功能时,有一些辅助API可以提供这些功能,这些API调用不同的内置应用程序,替换掉当前运行的应用程序来完成这些任务(发送邮件,拍照等)。
Launcher定义
Launcher是一套启动Windows Phone 7平台内置应用程序的API,如发送一封邮件或通过内置照相机拍照。
开发人员在他们的应用程序中可以调用Launcher API执行特定的任务,例如,你可以提供一个电话号码给Launcher API,它就可以帮你拨打该电话,并从当前正在执行的应用程序切换到呼叫应用程序,当用户打完电话后,上下文又切回到原先正在执行的应用程序。
需要注意的是Launcher API没有返回值。
Launcher的类型
Windows Phone 7有以下Launcher种类:
l 书写邮件
l Marketplace详细信息
l Marketplace中心
l Marketplace评论
l Marketplace搜索
l 启动Media Player
l 拨打电话
l 搜索
l 书写SMS
l 浏览网页
下面我们来看看在一个应用程序中如何使用这些Launcher
动手实践
让我们从为Windows Phone创建一个新的Silverlight C#项目开始,我将其命名为LauncherDemo。

▲图 1 为Windows Phone创建一个新的Silverlight C#项目
添加一个按钮,命名为“启动Media Player”。
在MainPage.xaml.cs中,添加一个Microsoft.Phone.Tasks命名空间的引用指令。
在按钮双击事件中,添加以下代码:
{
MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();
mediaPlayerLauncher.Media = new Uri("http://media.ch9.ms/ch9/e77b/b21d7957-7a8e-4f0b-8cf5-9e8c011de77b/sltv62_ch9.wmv", UriKind.RelativeOrAbsolute);
mediaPlayerLauncher.Location = MediaLocationType.Data;
mediaPlayerLauncher.Controls = MediaPlaybackControls.Pause | MediaPlaybackControls.Stop;
mediaPlayerLauncher.Show();
}
你会注意到我们传递了一个来自互联网的媒体文件,你可以在MSDN第9频道看到这个视频。
现在,当你在模拟器中编译和运行这个应用程序时,你会听到播放这个WMV文件产生的音乐。
你可以通过播放MSDN第9频道上的视频来验证你的确是在播放一个真正来自互联网的文件。
如果你在播放期间使用后退按钮,你将返回到LauncherDemo应用程序。
如果将这个XAP文件部署到一部手机上,你可以真正看到视频和听到声音,使用Windows Phone模拟器时,你只能听到声音(这是由模拟器的当前版本限制的)。
如果你在尝试过程中遇到了问题,你可以下载本文使用的Demo代码。