Windows 8 Store Apps学习(59) 锁屏

介绍

重新想象 Windows 8 Store Apps 之 锁屏

登录锁屏,获取当前程序的锁屏权限,从锁屏中移除

发送徽章或文本到锁屏

将一个 app 的多个 tile 绑定到锁屏

自定义锁屏图片

示例

1、演示如何登录锁屏,获取当前程序的锁屏权限,从锁屏中移除

LockScreen/AccessLockScreen.xaml

<Page
    x: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();
            }
        }
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索权限
, windows
, app低内存
, 锁屏
, text
, tostring
, lockscreen
, dialogandroid锁屏
, 当前
低权限
,以便于您获取更多的相关知识。

时间: 2024-10-21 18:44:40

Windows 8 Store Apps学习(59) 锁屏的相关文章

Windows 8 Store Apps学习(67) 后台任务: 推送通知

介绍 重新想象 Windows 8 Store Apps 之 后台任务 推送通知 示例 1.客户端 BackgroundTask/PushNotification.xaml <Page x:Class="XamlDemo.BackgroundTask.PushNotification" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://s

Windows 8 Store Apps学习(64) 后台任务: 开发一个简单的后台任务

介绍 重新想象 Windows 8 Store Apps 之 后台任务 开发一个简单的后台任务 示例 1.通过"Windows 运行时组件"新建一个后台任务 BackgroundTaskLib/Demo.cs /* * 后台任务 * * 注: * 后台任务项目的输出类型需要设置为"Windows 运行时组件",其会生成 .winmd 文件,winmd - Windows Metadata */ using System; using System.Threading

Windows 8 Store Apps学习(48) 多线程之其他辅助类

多线程之其他辅助类: SpinWait, SpinLock, Volatile, SynchronizationContext, CoreDispatcher, ThreadLocal, ThreadStaticAttribute 介绍 重新想象 Windows 8 Store Apps 之 多线程操作的其 他辅助类 SpinWait - 自旋等待 SpinLock - 自旋锁 volatile - 必在内存 SynchronizationContext - 在指定的线程上同步数 据 CoreD

Windows 8 Store Apps学习(46) 多线程之线程同步: Lock等

多线程之线程同步: Lock, Monitor, Interlocked, Mutex, ReaderWriterLock 介绍 重新想象 Windows 8 Store Apps 之 线程同步 lock - 其实就是对 Monitor.Enter() 和 Monitor.Exit() 的一个封装 Monitor - 锁 Interlocked - 为多个线程共享的数字型变量提供原子操作 Mutex - 互斥锁,主要用于同一系统内跨进程的互斥锁 ReaderWriterLock - 读写锁 示例

Windows 8 Store Apps学习(41) 打印

介绍 重新想象 Windows 8 Store Apps 之 打印 示例 1.需要打印的文档 Print/PrintPage.xaml <Page x:Class="XamlDemo.Print.PrintPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xam

Windows 8 Store Apps学习(21) 动画: ThemeTransition(过渡效果)

介绍 重新想象 Windows 8 Store Apps 之 动画 ThemeTransition 的概述 EntranceThemeTransition - 页面间跳转时的过渡效果 ContentThemeTransition - 内容改变时的过渡效果 RepositionThemeTransition - 位置改变时的过渡效果 PopupThemeTransition - 弹出时的过渡效果 AddDeleteThemeTransition - 添加项或删除项时的过渡效果 ReorderThe

Windows 8 Store Apps学习(8) WebView控件

介绍 重新想象 Windows 8 Store Apps 之 WebView 演示 WebView 的基本应用 演示 WebView 如何与 JavaScript 交互 通过 Share Contract 分享 WebView 中的内容 如何全屏 WebView 示例 1.WebView 的基本应用 WebView/Demo.xaml <Page x:Class="XamlDemo.Controls.WebView.Demo" xmlns="http://schemas

Windows 8 Store Apps学习(39) 契约: Share Contract

介绍 重新想象 Windows 8 Store Apps 之 契约 Share Contract - 右侧边栏称之为 Charm,其 中的"共享"称之为 Share Contract 示例 1.演示如何开发共享源 Contracts/ShareContract/ShareSource.xaml <Page x:Class="XamlDemo.Contracts.ShareContract.ShareSource" xmlns="http://sche

Windows 8 Store Apps学习(71)

作者:webabcd 介绍 重新想象 Windows 8 Store Apps 之 其它 C# 中调用 Windows Runtime Component(C++) 让 Windows Runtime Component(C++) 作为代理以调用 DLL(C++) 通过 C++ 和 D3D 获取屏幕分辨率 示例 一.演示如何在 C# 中调用 Windows Runtime Component(C++),以及 Windows Runtime Component(C++) 如何作为代理调用 DLL(