WP8 - 修改鎖定螢幕的通知範圍

Windows Phone 8 - 修改鎖定螢幕的通知範圍

撰寫過<Windows Phone 8 - 修改鎖定螢幕的背景>與<Windows Phone 8 - Background Schedule Task改變鎖定螢幕的背景>,

接著介紹是在Lock Screen中另一個可供修改的部分,也就是通知範圍(Lock screen notifications),如下圖所示之範圍:

Lock Screen Notifications Area

上述的範圍是不是很熟悉,在過去WP 7.1環境下,文字的部分只能放Calendar的內容右下的圖示部分只能放置

電話、郵件、訊息等系統的App的圖示與Counts

到了WP8開始,可以在Lock screen settings指定五個Apps icons顯示於Notification Area,加一個text範圍的App

如下圖:

000

從細部說明來看:

‧lock screen中的app icon、count與text來自於App的Default Tile;(secondary tile不會影響其內容)

‧lock screen中的text內容來自於App的Default Tile包含back content的資訊;(例如:default tile上的count與text)

 

WP8有這樣的特性,代表開發的App需要在WMAppManifest.xml中宣告支援lock screen的intent與建立對應的icon

來提供呈現,透過Settings/lock screen畫面來設定App可呈現於該範圍。因此,接下來便說明如何實作讓自己的

App能夠支援於Notification Area設定的功能。

 

1. 建立適用的Lock screen icon與設定DefaultLockImageURI:(強烈建議是目前反白icon)

    要呈現於lock screen的icon,其大小為38x38 PNG image,其色系必需為白色透明底(only white pixels plus level of transparency)。

繪製完圖像之後,接著需要在WMAppManifest.xml中<Token />加上定義Lock screen時使用的icon:

     1-1. 修改DeviceLockImageURI的屬性,IsRelative = true,IsResource = false,指定圖示的完整路徑

   1: <Tokens>
   2:   <PrimaryToken TokenID="LockNotifyProjToken" TaskName="_default">
   3:     <TemplateFlip>
   4:       <SmallImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileSmall.png</SmallImageURI>
   5:       <Count>0</Count>
   6:       <BackgroundImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileMedium.png</BackgroundImageURI>
   7:       <Title>LockNotifyProj</Title>
   8:       <BackContent></BackContent>
   9:       <BackBackgroundImageURI></BackBackgroundImageURI>
  10:       <BackTitle></BackTitle>
  11:       <!-- 設定IsRelative, IsResource與Full Path -->
  12:       <DeviceLockImageURI IsRelative="true" IsResource="false">Assets\LockImage.png</DeviceLockImageURI>
  13:       <HasLarge></HasLarge>
  14:     </TemplateFlip>
  15:   </PrimaryToken>
  16: </Tokens>

 

 

2. 於WMAppManifest.xml加入支援lock screen的extensions

     開啟WMAppManifest.xml於<Extensions />中加入支援lock screen notification的Extensions功能。如下:

   1: <Extensions>
   2:   <!-- 
   3:       定義支援Lock Screen Notification的宣告。
   4:       LockScreen_Notification_IconCount
   5:       LockScreen_Notification_TextField
   6:       二者與CusumerID均為固定的值。
   7:   -->
   8:   <Extension ExtensionName="LockScreen_Notification_IconCount" 
   9:              ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" />
  10:   <Extension ExtensionName="LockScreen_Notification_TextField" 
  11:              ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" />
  12: </Extensions>

LockScreen_Notification_IconCount與LockScreen_Notification_TextField二者可以依需求選擇一種使用,

如果有支援TextField的話在Settings/lock Screen畫面裡的下拉選單就可以看到,另外有支援IconCount的話,

在五個「+」中的App選項裡,也可以支援。

 

 

3. 在程式中加入可支援設定目前App為Lock screen notifications的邏輯

     另外,可以考慮在自己的App增加串聯Settings/lock screen的功能,讓用戶有更好的體驗。對於這個功能如果

有看過<Windows Phone 8 - 修改鎖定螢幕的背景>>這篇的介紹,設定lock screen notification其實不需要宣告provider,

只需透過Task的方式,讓用戶直接訪問lock screen進行設定,如下程式:

   1: private async void btnGoToLockSettings_Click(object sender, RoutedEventArgs e)
   2: {
   3:     // 宣告執行固定的 URI 進入 lock screen settings screen.
   4:     var op = await Windows.System.Launcher.LaunchUriAsync(
   5:              new Uri("ms-settings-lock:"));
   6: }

固定的ms-settings-lock字段,更多可以用的字段可以參考<URI schemes for launching built-in apps for Windows Phone 8>。

 

[範例程式]

該範例提供修改Default Tile中的Count與Text,用於顯示於Lock screen notification中的方式。如下程式與畫面。

003002001

======

透過<Windows Phone 8 - 修改鎖定螢幕的背景>與本篇的說明後,可了解在WP8下Lock Screen裡我們的App

可以提供很多特殊的用途,聽說WP7.8一樣會有這樣的功能,只是詳細的做法目前還不知道,希望是不會

相差太遠。一起來享受WP8的新特性吧,希望對大家有所幫助。

 

References:

Lock screen notifications for Windows Phone 8 (重要)

Lock screen background for Windows Phone 8

Tiles for Windows Phone

URI schemes for launching built-in apps for Windows Phone 8 (重要)

研討會:Windows Phone 8應用程式開發實戰

Windows Phone 8 Training Kit

[教學影片][研討會] Windows Azure Mobile Services 三部曲

 

Dotblogs Tags: