砂拉豆 发表于 2015-5-8 14:46:56

Windows Phone 7 SDK学习之Microsoft.Phone.Tasks中的各项Task

  有许多人或许会问,Windows Phone 7不允许访问本机的功能,使我们自己的程序完成共同的任务,比如发短信、发送email,但是你或许不能直接访问,但是Windows Phone 7 提供了间接的访问方式,那就是 Launchers & Choosers。通过他们我们就可以访问Windows Phone 7系统手机中的各项本机功能,并且微软已经为我们使用这些功能封装好了,我们只需要一个简单的调用就完全实现了。下面我们预览一下效果。
                    
  
            
      
  
  接下来我们进入正题
  1.PhoneCallTask :打电话

  private void btnPhoneCall_Click(object sender, RoutedEventArgs e)
      {
            PhoneCallTask task = new PhoneCallTask();
  
            task.PhoneNumber = "12345678901";
  
            task.DisplayName = "吴建强";
  
            task.Show();
      }
  
  2.SmsComposeTask:发送短信 

   private void btnComposeSms_Click(object sender, RoutedEventArgs e)
      {
            SmsComposeTask task = new SmsComposeTask();
  
            task.To = "12345678901";
  
            task.Body = "你好!.";
  
            task.Show();
      }
  
  3.EmailComposeTask:发送邮件
  

  EmailComposeTask task = new EmailComposeTask();
  
            task.To = "wjqlxt@163.com";
  
            task.Cc = "875867090@qq.com";
  
            task.Subject = "测试";
  
            task.Body = "你好啊!";
  
            task.Show();
  
  
  4.WebBrowserTask:开启Web浏览器
  

  private void btnLaunchWebBrowser_Click(object sender, RoutedEventArgs e)
      {
            WebBrowserTask task = new WebBrowserTask();
  
            task.URL = "http://www.iyunv.com/salam";
            task.Show();
      }
  
  5.SearchTask:搜索功能
  

  private void btnLaunchSearch_Click(object sender, RoutedEventArgs e)
      {
            SearchTask task = new SearchTask();
  
            task.SearchQuery = "吴建强";
            task.Show();
      }
  
  6.MediaPlayerLauncher:启动媒体播放器

  MediaPlayerLauncher task = new MediaPlayerLauncher();
  
   task.Media = new Uri(@"http://ecn.channel9.msdn.com/o9/learn/videos/Silverlight4-SL4BusinessModule1-SL4LOB_01_01_Introduction/Silverlight4-SL4BusinessModule1-SL4LOB_01_01_Introduction_kit.wmv");
  
            task.Show();
  
  
  7.CameraCaptureTask:照相功能

   private void btnTakePhoto_Click(object sender, RoutedEventArgs e)
      {
            CameraCaptureTask task = new CameraCaptureTask();
  
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  BitmapImage bmpImage = new BitmapImage();
                  bmpImage.SetSource(evt.ChosenPhoto);
                  image.Source = bmpImage;
                }
            };
            task.Show();
      }

  
  8.PhotoChooserTask:选择照片功能

private void btnSelectPhoto_Click(object sender, RoutedEventArgs e)
      {
            PhotoChooserTask task = new PhotoChooserTask();
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  BitmapImage bmpImage = new BitmapImage();
                  bmpImage.SetSource(evt.ChosenPhoto);
                  image.Source = bmpImage;
                }
            };
            task.Show();
      }  
  9.PhoneNumberChooserTask:选择联系人
  

   private void btnSelectPhoneNumber_Click(object sender, RoutedEventArgs e)
      {
            PhoneNumberChooserTask task = new PhoneNumberChooserTask();
  
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  MessageBox.Show(evt.PhoneNumber + "请选择电话号码");
                }
            };
  
            task.Show();
  
      }
  
  10.EmailAddressChooserTask:选择邮箱

   private void btnSelectEmailAddress_Click(object sender, RoutedEventArgs e)
      {
            EmailAddressChooserTask task = new EmailAddressChooserTask();
  
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  MessageBox.Show(evt.Email + " 请选择邮件地址");
                }
            };
  
            task.Show();
  
      }
  
  11.SavePhoneNumberTask:保存电话号码

   private void btnSavePhoneNumber_Click(object sender, RoutedEventArgs e)
      {
            SavePhoneNumberTask task = new SavePhoneNumberTask();
  
            task.PhoneNumber = "12345678901";
  
            task.Show();
      }
  
  12.SaveEmailAddressTask:保存邮箱
  

  private void btnSaveEmailAddress_Click(object sender, RoutedEventArgs e)
      {
            SaveEmailAddressTask task = new SaveEmailAddressTask();
  
            task.Email = "875867090@qq.com";
  
            task.Show();
      }
  
  13.PhoneNumberChooserTask和SmsComposeTask的结合使用

  private void btnSms_Click(object sender, RoutedEventArgs e)
      {
            PhoneNumberChooserTask contactsTask = new PhoneNumberChooserTask();
  
            contactsTask.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  SmsComposeTask smsTask = new SmsComposeTask();
                  smsTask.Body = "编辑内容.";
                  smsTask.To = evt.PhoneNumber;
                  smsTask.Show();
                }
            };
  
            contactsTask.Show();
      }
  
  14.EmailAddressChooserTask和EmailComposeTask的结合使用

        private void btnEmail_Click(object sender, RoutedEventArgs e)
      {
            EmailAddressChooserTask contactsTask = new EmailAddressChooserTask();
  
            contactsTask.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  EmailComposeTask emailTask = new EmailComposeTask();
                  emailTask.Body = "编辑内容";
                  emailTask.To = evt.Email;
                  emailTask.Show();
                }
            };
  
            contactsTask.Show();
  
      }
  
  
  完整MainPage.xaml

  
     
   
      
            
            
      
        
      
            
            
      
        
      
            
               
                  Launchers
                  
                  
                  
                  
                  
                  
                  Choosers
                  
                  
                  
                  
                  
                  
                  
                     Launchers和Choosers结合
                  
                  
               
            
      
   
  
  
  完整MainPage.cs

  using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;
  namespace WindowsPhoneTasks
{
    public partial class MainPage : PhoneApplicationPage
    {
      #region Constructor
        // Constructor
      public MainPage()
      {
            InitializeComponent();
      }
        #endregion
        #region Launchers
        private void btnPhoneCall_Click(object sender, RoutedEventArgs e)
      {
            PhoneCallTask task = new PhoneCallTask();
            task.PhoneNumber = "12345678901";
            task.DisplayName = "吴建强";
            task.Show();
      }
        private void btnComposeSms_Click(object sender, RoutedEventArgs e)
      {
            SmsComposeTask task = new SmsComposeTask();
            task.To = "12345678901";
            task.Body = "你好!.";
            task.Show();
      }
        private void btnComposeEmail_Click(object sender, RoutedEventArgs e)
      {
            EmailComposeTask task = new EmailComposeTask();
            task.To = "wjqlxt@163.com";
            task.Cc = "875867090@qq.com";
            task.Subject = "测试";
            task.Body = "你好啊!";
            task.Show();
      }
        private void btnLaunchWebBrowser_Click(object sender, RoutedEventArgs e)
      {
            WebBrowserTask task = new WebBrowserTask();
            task.URL = "http://www.iyunv.com/salam";
            task.Show();
      }
        private void btnLaunchSearch_Click(object sender, RoutedEventArgs e)
      {
            SearchTask task = new SearchTask();
            task.SearchQuery = "吴建强";
            task.Show();
      }
        private void btnLaunchMediaPlayer_Click(object sender, RoutedEventArgs e)
      {
            MediaPlayerLauncher task = new MediaPlayerLauncher();
            task.Media = new Uri(@"http://ecn.channel9.msdn.com/o9/learn/videos/Silverlight4-SL4BusinessModule1-SL4LOB_01_01_Introduction/Silverlight4-SL4BusinessModule1-SL4LOB_01_01_Introduction_kit.wmv");
            task.Show();
      }
        #endregion
        #region Choosers
        private void btnTakePhoto_Click(object sender, RoutedEventArgs e)
      {
            CameraCaptureTask task = new CameraCaptureTask();
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  BitmapImage bmpImage = new BitmapImage();
                  bmpImage.SetSource(evt.ChosenPhoto);
                  image.Source = bmpImage;
                }
            };
            task.Show();
      }
        private void btnSelectPhoto_Click(object sender, RoutedEventArgs e)
      {
            PhotoChooserTask task = new PhotoChooserTask();
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  BitmapImage bmpImage = new BitmapImage();
                  bmpImage.SetSource(evt.ChosenPhoto);
                  image.Source = bmpImage;
                }
            };
            task.Show();
      }
        private void btnSelectPhoneNumber_Click(object sender, RoutedEventArgs e)
      {
            PhoneNumberChooserTask task = new PhoneNumberChooserTask();
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  MessageBox.Show(evt.PhoneNumber + "请选择电话号码");
                }
            };
            task.Show();
      }
        private void btnSelectEmailAddress_Click(object sender, RoutedEventArgs e)
      {
            EmailAddressChooserTask task = new EmailAddressChooserTask();
            task.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  MessageBox.Show(evt.Email + " 请选择邮件地址");
                }
            };
            task.Show();
      }
        private void btnSavePhoneNumber_Click(object sender, RoutedEventArgs e)
      {
            SavePhoneNumberTask task = new SavePhoneNumberTask();
            task.PhoneNumber = "12345678901";
            task.Show();
      }
        private void btnSaveEmailAddress_Click(object sender, RoutedEventArgs e)
      {
            SaveEmailAddressTask task = new SaveEmailAddressTask();
            task.Email = "875867090@qq.com";
            task.Show();
      }
        #endregion
        #regionLaunchers 和 Choosers的结合
        private void btnSms_Click(object sender, RoutedEventArgs e)
      {
            PhoneNumberChooserTask contactsTask = new PhoneNumberChooserTask();
            contactsTask.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  SmsComposeTask smsTask = new SmsComposeTask();
                  smsTask.Body = "编辑内容.";
                  smsTask.To = evt.PhoneNumber;
                  smsTask.Show();
                }
            };
            contactsTask.Show();
      }
        private void btnEmail_Click(object sender, RoutedEventArgs e)
      {
            EmailAddressChooserTask contactsTask = new EmailAddressChooserTask();
            contactsTask.Completed += (s, evt) =>
            {
                if (evt.Error == null && evt.TaskResult == TaskResult.OK)
                {
                  EmailComposeTask emailTask = new EmailComposeTask();
                  emailTask.Body = "编辑内容";
                  emailTask.To = evt.Email;
                  emailTask.Show();
                }
            };
            contactsTask.Show();
      }
        #endregion
    }
}
页: [1]
查看完整版本: Windows Phone 7 SDK学习之Microsoft.Phone.Tasks中的各项Task