Windows Phone 7 - 更多元的Microsoft.Phone.Tasks
之前在WP 7.0 SDK裡提供的Tasks記錄在<Windows Phone 7 – 重要的操作 – Microsoft.Phone.Tasks>之中,
到了WP 7.1 SDK裡更增加了很多豐富的API與完整的功能,也讓開發人員對於WP7 OS的控制能力變得更完整,
以下就針對新的API部分,簡介說明。
〉New Microsoft.Phone.Tasks namespace:
在WP7中提供了Lanuchers與Choosers二種類型的API,協助App可以呼叫由WP7提供的功能,例如:取得用戶的電話號碼、
用戶地址、Email、或是選擇圖片、呼叫BingMap…等功能,而這些API提供的操作體驗就和一般用戶透過手機操作對應WP7內
鍵的程式一樣,讓用戶不會覺得不一致或混淆的狀況。此外,Launchers與Choosers它執行的方式由API直接Invoke OS另一個
獨立的程序,覆蓋在App之上再藉由註冊Invoke Response的事件讓獨立的程序可與我們的App進行溝通。
那什麼是Launcers、Choosers呢?以簡單的定義為:
「Launcers是直接呼叫API,不需等待它執行完成回到App;Choosers需要註冊Completed事件,等待由Chooser回傳的處理結果。」
往下,便來看看新的API提供了那些功能:
名稱 | 說明 |
AddressChooserTask | 允許應用程式透過該Task與User Contacts(聯絡人)程式互動,隨著選擇的User取得實際的地址(Physical Address)。 |
AddressResult | 回傳由AddressChooserTask選擇到User的實際地址,包括User的Display name。 |
BingMapsDirectionsTask |
允許應用程式呼叫Bing Map Application執行實作導航的功能,包括指定座標、啟始/結束點定位、導航,可以參考<How to: Use the Bing Maps Directions Task for Windows Phone>的內容。 *重要屬性: ‧Start:指定導航的啟始座標資訊。 ‧End:指定導航的結束座標資訊。 ‧LabeledMapLocation:呈現指定對象(地點、建築物)的地理座標與相關識別標籤。 |
BingMapsTask |
允許應用程式呼叫Bing Map Application執行,提供地圖的操作功能,包括指定地圖模式、定位、 縮放比例等。實作可以參考<How to: Use the Bing Maps Task for Windows Phone>的說明。 重要屬性: ‧Current:設定/取得Map開啟後中心點要呈現的座標。 ‧SearchTerm:設定/取得Map啟動後要搜尋的關鍵字或標籤。 ‧ZoomLevel:設定/取得Map放大縮小比例。 |
LabledMapLocation |
呈現指定對象(地點、建築物)的地理座標與相關識別標籤。 使用重點屬性在於: ‧Label:設定要呈現的標籤,不支援中文。 ‧Location:為GeoCoordinate物件,指定座標資訊。 |
ConnectionSettingsTask |
呼叫Setting Dialog(設定對話框)來允許用戶直接改變設備的網路連線設定。 如下重要屬性: ‧ConnectionSettingsType:指定要開啟網路設定的類型,包括: a. WiFi :WiFi Settings; b. Bluetooth :Bluetooth settings; c. Cellular :Cellular settings; d. AirplaneMode:Airplane mode settings; |
GameInviteTask | 啟動遊戲邀請畫面,允許用戶邀請其他Game Player加入該Session。 |
MediaPlayerLauncher |
呼叫多媒體播放器。 重要屬性: ‧Media:設定播放媒體的URI。 ‧Location:設定要播放媒體的資料位置,由MediaLocationType列舉值定義,包括: None、Install(應用程式安裝目錄)、Data(Isolated Storage)。 ‧Controls:設定播放器要出現的控制項目,由MediaPlaybackControls列舉值定義, 包括:None、All、FastForward、Rewind、Skip’、Pause、Stop。 如果要用組合的方式呈現,透過「|」符號組合。 ‧Orientation:設定播放畫面的方向性,由MediaPlayerOrientation列舉值定義。 |
MediaPlayerOrientation | 定義多媒體播放時的方式為:Landscape或Portrait,它是個列舉值。 |
SaveContactTask | 提供事件和方法讓App可以儲存聯絡人的編輯資料。需註冊FireCompleted事件,其事件會回傳SaveContactResult參數。 使用之後會直接進入一般由People Hub編輯聯絡人資訊相同的操作介面與使用方式。 |
SaveContactResult | 回傳SaveContactTask要求儲存聯絡人資料的處理結果。 |
SaveRingtoneTask |
WP7.1提供自訂鈴聲的功能,透過SaveRingtoneTask將編輯好的鈴聲儲存於系統鈴聲清單中。 需注意儲存的格式: a. 鈴聲檔案格式為mp3、WMA。 b. 鈴聲長度不超過40秒。 c. 鈴聲檔案需注意避免盜版。 d. 鈴聲檔案大小不超過1MB。 重要屬性: ‧DisplayName:設定鈴聲名稱。 ‧Source:設定鈴聲檔案的位置,設定成功後來檔案會被複製到鈴聲資料夾中。 檔案路徑需要在"Isolated Storage"或是"Application Data"之中,例如寫法: 儲存路徑由:"appdata:/"起頭,代表在Application Data中的根目錄; 儲存路徑由:"isostore:/"起頭,代表在Isolalted Storage中的根目錄; ‧IsShareable:設定該鈴聲是否允許被其他App存取。 |
ShareLinkTask |
允許透過該API啟動一個對話框將指定的Link分享至選定的分享對象(Social network)。 該API繼承ShareTaskBase。 重要屬性: ‧LinkUri:設定/取得要分享的URI。 ‧Title:設定/取得要分享的標題。 ‧Message:設定/取得要分享的訊息。 要在Device上測試才有效果。 |
ShareStatusTask |
允許透過該API啟動一個對話框將狀態訊息分享至選定的分享對象(Social network)。 該API繼承ShareTaskBase。 要在Device上測試才有效果。 |
以上介紹的Task中與過去相同均是透過Show()來切換不同的執行緒去完成Task的任務,最後在配合註冊的Completed Event
將Task執行的結果給回傳至原來的App(Thread)之中。此因為如此,所以使用Task也需要特別注意保持原Page的資料,建議
參考<Execution Model for Windows Phone>的內容。
〉範例程式:(由於範例程式中有用到一些影音資料,為維護智財權與保障數位內容,所以沒有納入檔案)
(save contact task) (save ringtone task)
(share link task) (share stauts task)
======
以上是針對WP7.1 SDK在Tasks中新的API說明。在很多RSS裡也有提到可以控制前景鏡頭等功能,也許未來將會被增加至此
Namespaces之中加強整個操作能力的完整性。另外,撰寫這一篇的內容主要是因為我看到Marketplace上有提供網路管理
的工具,我覺得非常有趣,例如:Connectivity Shortcuts…等這類的程式,其實他們就是結合了Task與Secondary Tiles所
實作的App,Secondary Tiles怎麼使用可以參考<Windows Phone 7 - 學習新的Secondary Tile與Application Tile>的內容。
References:
‧New APIs for Windows Phone OS 7.1
‧Changed APIs for Windows Phone OS 7.1 (必讀)
‧Execution Model for Windows Phone
‧How to: Use the Bing Maps Directions Task for Windows Phone
‧New APIs in Silverlight for Windows Phone OS 7.1
‧What's New in XNA Game Studio 4.0 Refresh
‧Launchers for Windows Phone (必讀)
‧Choosers for Windows Phone (必讀)
‧Camera and Photos Overview for Windows Phone (基本觀念)
‧Windows Phone 7.5 - Accessing your phone
‧在Windows Phone 7当中撰写导航程式Windows Phone 7 SDK 7.1 (Mango)
‧ Windows Phone: Mango Turn-By-Turn Navigation
‧Additional Requirements for Specific Application Types