Windowsストアアプリ:タイルのロックスクリーン

火曜日 , 9, 10月 2012 Leave a comment

 ロックスクリーンの概要

 

 ロックスクリーンはタイルのメッセージやバッジをロック画面に表示する機能です。

 

 上記画像のようにPCのロック時にアイコンとバッジ、テキストを表示することができます。

 

 ロックスクリーンに表示するためにはユーザーの承諾を得る必要があります(アプリ内で確認ダイアログを表示するかユーザーが設定で表示対象として選択する)。

 ロックスクリーンに表示できるアプリケーションは特定のバックグラウンドタスクで動作する必要があります(タイマーをトリガーとしたバックグラウンドタスクなど)。

 

(ロックスクリーンのポイント)

・表示はユーザーが選択する

・ロックスクリーンに表示できるアプリは7つ、メッセージ(詳細ステータス)が表示できるのは1つ。

 

 

ロックスクリーンの実装

 

 ロックスクリーンを実装するにはバックグラウンドタスクで動作する必要があります。

 今回はタイマーをトリガーとしたバックグラウンドタスクを利用します。バックグラウンドタスクの実装についてはWindowsストアアプリ入門 vol44.BackgroundTaskを実行する(2)を参照ください。

 

 バックグランドタスクの実装が終わったらPackage.appxmanifestを編集します。

 アプリケーションUIタグの「ロック画面通知:」を「バッジとタイル テキスト」に変更します。

 

 

 「宣言」タグでバックグラウンドタスクを宣言します。

 

 

 マニフェストファイルの編集は終了です。

 

 続いてC#コードを記載します。

 例えばボタンイベントでバッジやテキストを更新する場合以下のようなサンプルコードを記述します。

 

        /// <summary>
        /// バッジの追加
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void addBadgeButton_Click(object sender, RoutedEventArgs e)
        {
            // ロック画面に表示する許可を求めるダイアログを表示する
            await BackgroundExecutionManager.RequestAccessAsync();

            BadgeNumericNotificationContent badgeContent = new BadgeNumericNotificationContent(6);
            BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeContent.CreateNotification());
        }

        /// <summary>
        /// バッジのクリア
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void clearBadgeButton_Click(object sender, RoutedEventArgs e)
        {
            BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();
        }

        /// <summary>
        /// メッセージの追加
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void addMessageButton_Click(object sender, RoutedEventArgs e)
        {
            ITileWideSmallImageAndText03 tileContent = TileContentFactory.CreateTileWideSmallImageAndText03();
            tileContent.TextBodyWrap.Text = "このメッセージはタイルとロックスクリーンに表示されます。";
            tileContent.Image.Src = "ms-appx:///Assets/24.png";
            tileContent.RequireSquareContent = false;
            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileContent.CreateNotification());
        }

        /// <summary>
        /// メッセージのクリア
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void clearMessageButton_Click(object sender, RoutedEventArgs e)
        {
            TileUpdateManager.CreateTileUpdaterForApplication().Clear();
        }

 

 バッジの追加ボタンを押すとユーザーに許可を求めるダイアログが表示されます。

 

 

 ユーザー操作で設定から表示することもできます。

 

 

 PC設定の「パーソナル設定」画面の「ロック画面に表示するアプリ」に追加・削除することで表示を切り替えることができます。

 「詳細ステータスを表示するアプリを選ぶ」で選択することでテキストメッセージを表示することもできます。

 

 

 ロックスクリーンのサンプルはGitHubのLockScreenSampleを参照ください。

 


Please give us your valuable comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です