和android不同,wp7不允許調用原生功能結合自己的程式完成一些工作,要想使用那些功能只能調用系統封裝好的介面,這些介面會啟動系統的功能,基本都是帶介面的,所以無法嵌入邏輯中,只能中斷當前邏輯,把操作權交給系統。如果是啟動器,則程式邏輯到此結束,如果是選取器,則等待使用者操作完畢,取得返回結果,繼續下面的邏輯。那麼如何區分啟動器和選取器呢,只能從功能上區分,帶有返回結果的就是選取器,無返回結果,只是啟動系統的功能的便是啟動器。啟動器和選取器被封裝到Microsoft.Phone.Tasks命名空間中,下面是所有啟動器和選取器的類列表
AddressChooserTask
允許應用程式啟動“連絡人”應用程式。使用此方法擷取使用者選擇的連絡人的物理地址。
BingMapsDirectionsTask
允許應用程式啟動“Bing 地圖”應用程式,指定要顯示其行車路線的開始位置或結束位置,或者同時指定兩者。
BingMapsTask
允許應用程式啟動 Bing 地圖應用程式,並定位於 Center 屬性指定的位置或使用者的當前位置。如果設定了 SearchTerm,則會在地圖上標記與搜尋術語匹配的位置。
CameraCaptureTask
允許應用程式啟動“相機”應用程式。使用此方法可允許使用者通過您的應用程式拍攝照片。
ConnectionSettingsTask
允許應用程式啟動一個“設定”對話方塊,該對話方塊允許使用者更改裝置的網路連接設定。
EmailAddressChooserTask
允許應用程式啟動“連絡人”應用程式。使用此方法擷取使用者選擇的連絡人的電子郵件地址。
EmailComposeTask
允許應用程式通過顯示的新郵件啟動“電子郵件”應用程式。使用此方法可允許使用者通過您的應用程式寄送電子郵件。
GameInviteTask
允許應用程式顯示一個遊戲邀請螢幕,該螢幕允許使用者邀請玩家加入多玩家遊戲會話。
MarketplaceDetailTask
允許應用程式啟動 Windows Phone 商城 用戶端應用程式並顯示指定產品的詳細資料頁面。
MarketplaceHubTask
允許應用程式啟動 Windows Phone 商城 用戶端應用程式。
MarketplaceReviewTask
允許應用程式啟動 Windows Phone 商城 用戶端應用程式並顯示指定產品的評論頁面。
MarketplaceSearchTask
允許應用程式啟動 Windows Phone 商城 用戶端應用程式並顯示指定搜尋術語的搜尋結果。
MediaPlayerLauncher
允許應用程式啟動媒體播放器。
PhoneCallTask
允許應用程式啟動“手機”應用程式。使用此方法可允許使用者通過您的應用程式撥打到電話。
PhoneNumberChooserTask
允許應用程式啟動“連絡人”應用程式。使用此方法可擷取使用者選擇的連絡人的電話號碼。
PhotoChooserTask
允許應用程式啟動“照片選取器”應用程式。使用此方法可允許使用者選擇照片。
SaveContactTask
提供用於啟動連絡人應用程式以及使使用者能夠儲存連絡人的方法和事件。
SaveEmailAddressTask
允許應用程式啟動“連絡人”應用程式。使用此方法可允許使用者將應用程式中的電子郵件地址儲存到新的或現有的連絡人。
SavePhoneNumberTask
允許應用程式啟動“連絡人”應用程式。使用此方法可允許使用者將應用程式中的電話號碼儲存到新的或現有的連絡人。
SaveRingtoneTask
使應用程式能夠啟動鈴聲應用程式。使用 SaveRingtoneTask 可允許使用者將應用程式中的鈴聲儲存到系統鈴聲列表。
SearchTask
允許應用程式啟動“Web 搜尋”應用程式。
ShareLinkTask
允許應用程式啟動一個對話方塊,該對話方塊允許使用者在其選擇的社交網路上共用連結。
ShareStatusTask
允許應用程式啟動一個對話方塊,該對話方塊允許使用者在其選擇的社交網路上共用狀態資訊。
SmsComposeTask
通過顯示的新簡訊啟動“簡訊”應用程式。
WebBrowserTask
允許應用程式啟動“網頁瀏覽器”應用程式。
上面是各種啟動器和選取器的類名和簡單家少,我在這裡列舉幾個簡單的例子,這些都是比較簡單的調用,不會有任何複雜的程式,wp7設計之初就已經決定,我們無法在這上面大展手腳。我也就沒必要都示範一遍了。
先寫兩個選取器的執行個體
PhoneCallTask
PhoneCallTask task = new PhoneCallTask();task.PhoneNumber = "15000001245";task.DisplayName = "dhc";task.Show();
運行介面如下
WebBrowserTask
WebBrowserTask task = new WebBrowserTask();task.URL = "http://www.baidu.com";task.Show();
運行結果
MarketplaceHubTask
MarketplaceHubTask task = new MarketplaceHubTask();task.ContentType = MarketplaceContentType.Applications;task.Show();
運行介面如下
下面寫兩個選取器的執行個體
PhoneNumberChooserTask
下面是PhoneNumberChooserTask選取器與SmsComposeTask啟動器結合使用的代碼,選擇一個電話號碼,然後啟動簡訊功能,並預設寫入"這事簡訊"內容
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();
運行代碼,選擇一個電話,結果如下
CameraCaptureTask
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();
真機不方便,模擬器中照相機啟動器運行效果如
PhotoChooserTask
PhotoChooserTask task = new PhotoChooserTask();; task.Completed += new EventHandler<PhotoResult>(pc_Completed); task.Show();void pc_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK) { BitmapImage bmpSource = new BitmapImage(); bmpSource.SetSource(e.ChosenPhoto); image.Source = bmpSource; } else { image.Source = null; } }
運行結構如
好了就介紹這麼多吧,剩下的自己試試就行了,很假單的,都是這種形式
本來不打算這麼早介紹純WP7的東西,但是又怕別人說我是混人氣,就提前寫了這一篇,下一篇還是回到比較重要的基礎知識上,初學者別著急,會讓你們滿意的,有經驗的童鞋也別急,會寫你們感興趣的東西,大牛的東西在後面呢。