Windows 8 Store Apps学习(59) 锁屏2014-03-09 cnblogs webabcd介绍重新想象 Windows 8 Store Apps 之 锁屏登录锁屏,获取当前程序的锁屏权限,从锁屏中移除发送徽章或文本到锁屏将一个 app 的多个 tile 绑定到锁屏自定义锁屏图片示例1、演示如何登录锁屏,获取当前程序的锁屏权限,从锁屏中移除LockScreen/AccessLockScreen.xaml
<Pagex:Class="XamlDemo.LockScreen.AccessLockScreen"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="using:XamlDemo.LockScreen"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"><Grid Background="Transparent"><StackPanel Margin="120 0 0 0"><TextBlock Name="lblMsg" FontSize="14.667" /><Button Name="btnRequestAccess" Content="请求登录锁屏" Margin="0 10 0 0" Click="btnRequestAccess_Click" /><Button Name="btnGetAccessStatus" Content="获取当前程序的锁屏权限" Margin="0 10 0 0" Click="btnGetAccessStatus_Click" /><Button Name="btnRemoveAccess" Content="从锁屏中移除" Margin="0 10 0 0" Click="btnRemoveAccess_Click" /></StackPanel></Grid></Page>
LockScreen/AccessLockScreen.xaml.cs
/* * 演示如何登录锁屏,获取当前程序的锁屏权限,从锁屏中移除 ** 注: * 要想请求锁屏权限,需要后台任务支持“推送通知”或“控制通道” */using System;using Windows.ApplicationModel.Background;using Windows.UI.Xaml;using Windows.UI.Xaml.Controls;namespace XamlDemo.LockScreen{public sealed partial class AccessLockScreen : Page{public AccessLockScreen(){this.InitializeComponent();}private async void btnRequestAccess_Click(object sender, RoutedEventArgs e){try{// 向系统请求登录锁屏,会弹出确认对话框// 需要后台任务支持“推送通知”或“控制通道”,否则会抛出异常// 不能在模拟器中运行// 如果 BackgroundAccessStatus 不等于 Unspecified,则即使调用 RequestAccessAsync() 也不会出现对话框,需要用户去“设置”中去添加或移除锁屏应用BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();/* * BackgroundAccessStatus - 当前 app 的锁屏权限 * Unspecified - 用户尚未选择 * Denied - 被用户拒绝 * AllowedWithAlwaysOnRealTimeConnectivity - 用于允许了,且支持实时连接,即使电量低 * AllowedMayUseActiveRealTimeConnectivity - 用于允许了,且支持实时连接,但是如果电量低则无法实时连接 */lblMsg.Text = "RequestAccessAsync(): " + status.ToString();}catch (Exception ex){lblMsg.Text = ex.ToString();}}private void btnGetAccessStatus_Click(object sender, RoutedEventArgs e){try{// 获取当前应用程序的锁屏权限BackgroundAccessStatus status = BackgroundExecutionManager.GetAccessStatus();lblMsg.Text = "GetAccessStatus(): " + status.ToString();}catch (Exception ex){lblMsg.Text = ex.ToString();}}private void btnRemoveAccess_Click(object sender, RoutedEventArgs e){try{// 将当前应用程序从锁屏中移除BackgroundExecutionManager.RemoveAccess();lblMsg.Text = "RemoveAccess()";}catch (Exception ex){lblMsg.Text = ex.ToString();}}}}