鎖定的螢幕背景
綜述
在以前的 Windows Phone 作業系統版本,螢幕鎖定畫面裡包含了幾個內建的通知:如新郵件和文字訊息的數量。在 Windows Phone 8,使用者可以自己選擇用任何第三方的 App 來自訂螢幕鎖定畫面。做為開發人員,你可以讓開發的 App 擁有被加入到螢幕鎖定畫面的功能,並顯示快速訪問的資訊。
每當手機螢幕關閉後重開就會顯示螢幕鎖定畫面,並在畫面上提供使用者關於手機及 App 一目了然的訊息。App 會提供以下四種資訊在螢幕鎖定畫面上:
背景圖片
App 圖示
App 數量
App 內文
註:App 圖示、數量、內文會直接從 App 的主要動態磚拉出並顯示在螢幕鎖定畫面的通知訊息區,關於動態磚的更多詳細資料將在探討動態磚的章節深入討論。
圖 1
Windows Phone 8 的螢幕鎖定畫面
Windows Phone App - ContosoCookbook 可以讓使用者找到並顯示想要的食譜及食譜類型,在這個討論裡,當使用者釘選了最愛食譜動態磚到首頁時,我們將把螢幕鎖定畫面上的背景改換成使用者最愛食譜的圖片。
Windows Phone 8 螢幕鎖定畫面可任由使用者在「設定」項目裡自由變換。要更改螢幕鎖定畫面時,App 必須得到使用者授權,且一次只有一個 App 可以擁有權限將畫面顯示在螢幕鎖定畫面。這一個實習中,我們將展示如何要求明確的用戶權限,以及測試如何更改螢幕鎖定畫面。
原始版本的 ContosoCookbook App 存放在實驗安裝資料夾 Sources\Begin 下方。在實驗完成後,App 的功能會與存放在 Sources\End 中的版本相同。
目標
這個實驗將達成以下目標:
以編程方式更改螢幕鎖定畫面
測試以 App 更改螢幕鎖定畫面
系統需求
您必須符合以下系統需求:
Microsoft Visual Studio 2012 或 Microsoft Visual Studio 2012 Express for Windows Phone
之前的 Windows phone 開發經驗
實驗架構
這個實驗包含了一個單一練習及以下任務:
更新應用程式清單文件
新增代碼以變更螢幕鎖定畫面
測試 App
預計完成時間
預計可完成時間為 : 30 分鐘
練習 1
在本練習中,我們修改了的 Contoso Cookbook App,以便當使用者選擇了一個最喜愛的食譜時,可以改變手機預設的螢幕鎖定畫面。
任務 1– 更改應用程式清單文件
首先,我們需要更新應用程式清單文件中的聲明,以授權 App 為螢幕鎖定畫面提供者。只有註冊過的螢幕鎖定畫面提供者可以更改螢幕鎖定畫面。
瀏覽到實驗安裝資料夾下方的 Source\Begin 文件夾,使用 Visual Studio 打開 ContosoCookbook.sln. 方案檔
執行並檢查 App。
ContosoCookbook App 幫助使用者查找食譜並顯示材料及烹飪步驟。實作在 MainPage.xaml 的主頁提供美食類別的挑選,使用者”選擇”的動作將觸發瀏覽到美食類別頁面 (位於 GroupDetailPage.xaml),此頁面使用有兩個 PivotItem 的 Pivot 控制項來顯示美食類別的詳細資訊 (包含美食類別介紹及符合需求的食譜資料)。食譜也可以透過 App 內購買機制(將在”購買”章節中描述)購買。
當使用者挑選一則食譜,實作在 RecipeDetailPage.xaml 的食譜頁面就會陳列出食譜的詳細資料,包括烹飪步驟及所需材料等。食譜頁上可以用應用程式列 (Application Bar) 將食譜設定為最愛或釘選食譜到首頁-這也是可以觸發將食譜圖片設定為螢幕鎖定畫面的地方。
切換到 Properties 資料夾中的 Visual Studio 方案總管,選擇 WMAppManifest.xml 項目。
按右鍵點擊 WMAppManifest.xml,並選擇“Open with”。
圖 2
打開應用程式清單選擇 “XML (text) Editor”,並點選 OK
在應用程式清單中的選項 <Extensions> 新增一個新的 <Extension> 元素,這個元素用來宣告 App 為螢幕鎖定畫面的供應者。如果應用程式清單中沒有出現 <Extensions> 元素,在檔案中貼上下方全部代碼。
XML
<Extensions>
<Extension
ExtensionName="LockScreen_Background"
ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}"
TaskID="_default" />
</Extensions>註 : <Extensions> 元素必須放在 <Tokens> 元素下方。
任務 2 – 新增代碼更改螢幕鎖定畫面
要更改螢幕鎖定畫面,App 必須呼叫 API 去要求取得使用者權限。在 ContosoCookbook App 中,當使用者挑選了一個最愛的食譜並釘選到首頁時,才會觸發更改螢幕鎖定畫面的功能。
註 : 在 ContosoCookbook App 中,更改螢幕鎖定畫面的功能是由使用者操作觸發的。其 他 App 可能需要螢幕鎖定畫面週期性的更改,這可以利用背景代理程式做到。可以參考說明文件中“Windows Phone 背景代理程式” 章節。
我們將更改應用程式列 (Application Bar) 中的“Favorite”按鍵,當使用者點擊“Favorite”時可以更新螢幕鎖定畫面。
圖 3
“最愛的食譜”按鍵找到 RecipeDetailPage.xaml.cs 檔案並打開它
找到 btnPinToStart_Click 方法
新增下方代碼到 “Setup lock screen” comment 下方 :
C#
// Setup lock screen.
if (!LockScreenManager.IsProvidedByCurrentApplication)
{
//If you're not the provider, this call will prompt the user for permission.
//Calling RequestAccessAsync from a background agent is not allowed.
await LockScreenManager.RequestAccessAsync();
}if (LockScreenManager.IsProvidedByCurrentApplication)
{
Uri imageUri = new Uri("ms-appx://" + item.ImagePath.LocalPath,
UriKind.RelativeOrAbsolute);
LockScreen.SetImageUri(imageUri);
}方法的程式碼處理兩種不同的情況:設定次級動態磚 (原始代碼中提供的) 及更改螢幕鎖定畫面 (我們剛新增的)。
代碼執行分成兩種不同的狀況;釘選一個次級動態磚到首頁及移除先前釘選的動態磚。當使用者釘選動態磚到首頁時,我們應該只更改螢幕鎖定背景。
LockScreenManager.IsProvidedByCurrentApplication 屬性確認使用者是否設定了該 App 作為螢幕鎖定背景供應者,如果該 App 目前非供應者,則請求使用者使用 LockScreenManager.RequestAccessAsync 方法鎖定。
最後,LockScreen.SetImageUri 方法更改螢幕鎖定畫面
註 : 只有當你的 App 不是目前螢幕鎖定畫面的供應者時,你應該呼叫 RequestAccessAsync 方法。使用者可以利用手機內的設定功能更改螢幕鎖定畫面的供應者。
任務 3 – 從 App 測試解鎖畫面
整合 Visual Studio的Windows Phone 模擬器提供了 Simulation Dashboard 工具,可以在App中測試螢幕鎖定背景相關的功能。在這個任務中,我們要測試在先前任務中新加入的代碼,並且驗證 App 是否成功地擁有進入螢幕鎖定畫面功能的權限並更改螢幕鎖定畫面。
在 Visual Studio 中,打開 Tools 選單。
在 Tools 選單中,選擇 Simulation Dashboard. 對話框跳出如下。
圖 4
Simulation Dashboard 工具選單對話框Simulation Dashboard 工具能夠模擬不同的網絡速度和信號強度、螢幕鎖定及螢幕解鎖、以及觸發提醒。使用“鎖定”(“Locked”)和“解鎖”(“Unlocked”)選項可以測試我們的 App 螢幕鎖定背景功能。
執行 ContosoCookbook App
選擇一個食譜。
在應用程式列裡,點選“Favorite” (心型) 按鍵:
圖 5
應用程式列 (Application Bar) 裡的最愛 (心型) 按鍵出現提示詢問訊息時,允許 App 更改螢幕鎖定畫面。
圖 6
螢幕鎖定背景的供應商授權訊息回到 Visual Studio 中的 Simulation Dashboard。
點擊 Locked 按鍵並回到模擬器,鎖定螢幕的背景就可以更改了。
圖 7
由 Contoso Cookbook 提供的螢幕鎖定畫面
總結
上面的內容討論了從 App 更改螢幕鎖定畫面所需要的步驟:
為了實行這些關聯,你在應用程式清單中註冊關聯,實行 URI 對應器類別篩選及處理啟動 App 的功能,並增加從檔案下載資料或從 URI 檢索參數的功能。
現在,你擁有可以建立自己的應用程式並使用 URI 格式名稱和文件關聯與其他應用程式進行溝通,並擴充程式間互操作性選項的能力。
在應用程式清單內聲明擴充螢幕鎖定功能
確認 App 是否為螢幕鎖定畫面的授權供應者
要求使用者的同意以更改螢幕鎖定畫面
以編程方式更改螢幕鎖定畫面
當使用者已經授權你的 App 為螢幕鎖定畫面的供應者,你可能會發現用背景代理程式定期更改畫面非常好用。例如:氣象 App 可以利用來更改螢幕鎖定畫面反映天氣 (例如下雪天、晚上、雨天、晴天或者陰天),若需要更多關於背景代理程式的資料可以參考說明文件。
你現在可以建立自己的 App 並更改螢幕鎖定背景了。
繼續下一個實驗 |