Task的使用

 所有Task都有Show方法,调用Show方法启动任务,任务执行完毕一般会返回应用。所有任务都不是自动启动,而是需要用户手动点击启动,是WP7基于安全考虑,防止泄密、吸费等问题。无法用来实现批量发短信。所有Task都需要用户手动触发执行。这些Task监视工具都看不到,通过电脑摄像头看

 

SmsComposeTask:启动发送短信的任务,可以通过To、Body两个属性设置对方号码和短信内容。注意Show以后只是显示发送界面

1 SmsComposeTask sm = new SmsComposeTask();

2             sm.Body = "对不起,你本月的余额非常的充足。请不要充值!";

3             sm.To = "10086";//可以多人发送sm.To = "10086;10000;110"

4             sm.Show();

Task的使用

需要用户点手状的按钮确定发送

EmailComposeTask:发邮件的任务,可以通过Subject 、 Body To 、 Cc属性设置标题、内容、收件人、抄送。使用该功能需要设置下邮箱账户

1  EmailComposeTask et = new EmailComposeTask();

2             et.Subject = "主题";

3             et.Body = "正文";

4             et.To = "[email protected]";

5            // et.Cc = "抄送";

6             et.Show();

PhoneCallTask:拨打电话的任务,可以通过PhoneNumber、DisplayName属性设置拨打的号码和显示的名称。实现“在软件中查找到商家以后点击号码直接拨号”

1 PhoneCallTask pct = new PhoneCallTask();

2             pct.DisplayName = "移动客服";

3             pct.PhoneNumber = "10086";

4             pct.Show();

WebBrowserTask:打开网页的任务,可以通过URL属性设置要打开网页的地址。实现二维码软件的“在线购买”功能

1 WebBrowserTask webShow = new WebBrowserTask();

2             webShow.Uri = new Uri("http://www.baidu.com");

3             webShow.Show();

有一些需要得到执行结果的任务,这些任务一般都从ChooserBase继承,监听Completed事件,从e中可以获得执行结果,所有e任务都有属性TaskResult表示执行结果(OK执行成功,Cancel任务被取消),Error表示执行过程中的异常信息(如果没有异常就是null)。

SavePhoneNumberTask:保存联系人(People)号码。

 1  SavePhoneNumberTask saveNum = new SavePhoneNumberTask();

 2             saveNum.PhoneNumber = "10086";

 3             saveNum.Completed += new EventHandler<TaskEventArgs>(saveNum_Completed);

 4             saveNum.Show();

 5         }

 6 

 7         void saveNum_Completed(object sender, TaskEventArgs e)

 8         {

 9             if (e.TaskResult==TaskResult.OK)

10             {

11                 MessageBox.Show("保存成功");

12             }

13             else

14             {

15                 MessageBox.Show("未保存");

16             }

17         }

PhoneNumberChooserTask:选择电话号码,e. PhoneNumber为选择的电话号码。可以实现支付宝手机客户端的“给手机充值”功能中让用户选择用户,自动填充手机号码。

 1  PhoneNumberChooserTask numberChooser = new PhoneNumberChooserTask();

 2             numberChooser.Completed += new EventHandler<PhoneNumberResult>(numberChooser_Completed);

 3             numberChooser.Show();

 4         }

 5 

 6         void numberChooser_Completed(object sender, PhoneNumberResult e)

 7         {

 8             if (e.TaskResult==TaskResult.OK)

 9             {

10                 MessageBox.Show(e.DisplayName+"="+e.PhoneNumber);//移动客服=10086

11             }

12         }

以下CameraCaptureTask等和摄像头、音乐、图片等和媒体相关的要用WPConnect连接,不能用Zune连接。

   CameraCaptureTask启动拍照任务,e. ChosenPhoto为拍照的图片流。(模拟器用电脑摄像头模拟手机摄像头,如果电脑没有摄像头可以拖入图片或者wmv视频

 1   CameraCaptureTask camTask = new CameraCaptureTask();

 2             camTask.Completed += new EventHandler<PhotoResult>(camTask_Completed);

 3             camTask.Show();

 4         }

 5 

 6         void camTask_Completed(object sender, PhotoResult e)

 7         {

 8             if (e.TaskResult==TaskResult.OK)

 9             {

10                 BitmapImage img = new BitmapImage();

11                 img.SetSource(e.ChosenPhoto);//获取图片的数据流

12                 //放到一个image容器中

13                 image1.Source = img;

14             }

15         }

PhotoChooserTask选择图片的任务, e. ChosenPhoto为拍照的图片流。PixelHeight、PixelWidth属性为要选择图片的尺寸,如果设置了这两个属性则会提供图片截取的功能(可以用来实现上传QQ头像的功能),ShowCamera为是否允许用户拍照。实现微博的插入图片功能。

 1  PhotoChooserTask photoChoose = new PhotoChooserTask();

 2             photoChoose.ShowCamera = true;//开启手机摄像头

 3             photoChoose.PixelHeight = 200; 

 4             photoChoose.PixelWidth = 200;

 5             photoChoose.Completed += new EventHandler<PhotoResult>(photoChoose_Completed);

 6             photoChoose.Show();

 7         }

 8 

 9         void photoChoose_Completed(object sender, PhotoResult e)

10         {

11             if (e.TaskResult == TaskResult.OK)

12             {

13                 BitmapImage img = new BitmapImage();

14                 img.SetSource(e.ChosenPhoto);//获取图片的数据流

15                 //放到一个image容器中

16                 image1.Source = img;

17             }

18         }

Accelerometer,感应加速度的变化,Start方法启动,Stop方法停止,当加速度发生变化以后ReadingChanged事件触发。e.Xe.Ye.Z得到加速度,右边是坐标系

 

 1 //添加引用 Microsoft.Devices.Sensors

 2  Accelerometer acceler = new Accelerometer();

 3             acceler.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(acceler_CurrentValueChanged);

 4             acceler.Start();

 5 

 6         }

 7 

 8         void acceler_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)

 9         {

10             Dispatcher.BeginInvoke(() => { 

11             textBlock1.Text = e.SensorReading.Acceleration.X + "," + e.SensorReading.Acceleration.Y + "," + e.SensorReading.Acceleration.Z;

12             });

13         }

 

 

 

你可能感兴趣的:(task)