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();

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

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

1  EmailComposeTask et = new EmailComposeTask();
2             et.Subject = "主题";
3             et.Body = "正文";
4             et.To = "123@123.com";
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         }

 

 

 

posted @ 2012-08-24 22:38  Carl --卡尔  阅读(1759)  评论(2编辑  收藏  举报