Windows Phone 7 - 更多元的Microsoft.Phone.Tasks(转载)

junwong 发布于 2012/02/24 11:39
阅读 348
收藏 0

前在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>的內容。

 

〉範例程式:(由於範例程式中有用到一些影音資料,為維護智財權與保障數位內容,所以沒有納入檔案)

 

savecontact(save contact task) saveringtone0(save ringtone task)

IMAG0075 (share link task) IMAG0077 (share stauts task)

 IMAG0078  (game invite task) 11 (程式畫面)

======

以上是針對WP7.1 SDK在Tasks中新的API說明。在很多RSS裡也有提到可以控制前景鏡頭等功能,也許未來將會被增加至此

Namespaces之中加強整個操作能力的完整性。另外,撰寫這一篇的內容主要是因為我看到Marketplace上有提供網路管理

的工具,我覺得非常有趣,例如:Connectivity Shortcuts…等這類的程式,其實他們就是結合了Task與Secondary Tiles所

實作的App,Secondary Tiles怎麼使用可以參考<Windows Phone 7 - 學習新的Secondary Tile與Application Tile>的內容。

原文链接:http://www.dotblogs.com.tw/pou/archive/2011/10/27/46939.aspx

加载中
返回顶部
顶部