Aoac唤醒

这篇文章包含了Win10下的Aoac唤醒和Win11下的Aoac唤醒的不同地方,在结尾处:

从Win10时代开始,通过软件来唤醒机器是一个很常见的事情了,但是很少有文档去将如何通过AOAC来唤醒,通过硬件、软件如何唤醒,有哪些限制条件,哪些需要注意的系统设置的唤醒场景;什么条件下可以唤醒,什么条件下唤醒失败,对于一个涉及到相关功能的开发人员来说都需要系统性的分析和了解;这篇文章主要梳理在不使用硬件方案的情况下如何唤醒机器。

文档地址

因为是纯软件方案,所以我们梳理文档中软件可以自由唤醒的相关的内容;

Universal Windows Platform (UWP) Applications

UWP applications can wake the SoC from the deepest idle state to sync and display notifications, depending on a device's power source, notification priority levels, and app-specific user configurations.

Event Turns On the display AC power Turns on the display - DC power Remarks
Other UWP apps:push notifications Depends on the type of nitification Depends on whether the app is exempt,the notification priority level, and the type of notification see Note.

备注

如果设备连接到AC电源,则所有优先级的通知(高、中或低优先级)为UWP应用提供。如果设备处于DC(电池)电源,则所有优先级的通知仅针对免除的UWP应用提供。不同类型的通知具有不同的优先级别,具体取决于特定应用。例如收件箱邮件应用将传入邮件的通知视为低优先级。如果在新式待机期间传递通知,则只有Toast通知才会打开显示。有关UWP通知的详细信息,请参阅WNS通知优先级

若要将应用设置为豁免,请右键单击开始菜单,然后选择设置>System>Battery。可以看到高耗电的应用。如果要免除应用,请选择该应用。如果启用“让Windows决定”,请选择“始终”以允许应用在后台运行。若要允许来自应用的通知,请选择“设置>系统>通知”&操作,然后再“获取来自这些发件人的通知”中打开该应用。

看完文档,大致了解了AOAC唤醒在外接电源和内置电池的工作模式下的逻辑。接下来看WNS通知优先级

WNS通知优先级

随着笔记本的发展,应用的功耗最大程度降低变成了应用程序的标准要求。如果应用消耗的能量超过了它们提供的价值,用户可能会卸载这些应用。虽然Windows操作系统回尽可能减少电池的耗电量,但应用有责任高效率运行。

WNS优先级是在电池供电时关闭非关键工作的一种方法。WNS优先级告诉系统哪些通知应该立即发送,那些通知可以等到设备插上电源。通过这些提示,系统可以在通知对用户和应用最有价值的确切时间发送通知。

优先级

应用在发送推送通知时可以使用四个优先级。 优先级是针对单个通知设置的,允许你选择哪些通知需要立即发送(例如,IM 消息)以及哪些通知可以等待(例如,联系人照片更新)。

优先级如下:

优先级 用户替代 说明 示例
是 - 用户可以阻止来自应用的所有通知,也可以阻止应用在节电模式下受到限制。 在设备可以接收通知的任何情况下必须立即发送的最重要的通知。 属于这一类的包括应该唤醒设备的诸如 VoIP 呼叫或严重警报等等。 VoIP 呼叫、时间紧迫的警报
是 - 用户可以阻止来自应用的所有通知,也可以阻止应用在节电模式下受到限制。 这些是不那么重要的事情,不需要立即仅限的事情,但是如果他们不在后台运行,会让用户讨厌。 辅助电子邮件帐户同步,动态磁贴更新。
是 - 用户可以阻止来自应用的所有通知,也可以阻止应用在节电模式下受到限制。 仅在用户使用设备或后台活动有意义时才有意义的通知。 在用户登录或插入他们的设备之前,这些内容会被缓存并且不会被处理。 联系状态(在线/离线)

请注意,许多应用程序在其整个生命周期中都会收到不同优先级的通知。 由于优先级是基于每个通知设置的,因此这不是问题。 VoIP 应用可以为来电发送高优先级通知,然后在联系人上线时用低优先级通知跟进。

设置优先级

设置通知请求的优先级是通过 POST 请求 X-WNS-PRIORITY 上的附加标头完成的。 这是一个 1 到 4 之间的整数值,映射到优先级:

|优先级名称|X-WNS-PRIORITY值|默认值|

|高|1|Toast|

|中型|2|此贴和锁屏提醒|

|低|3|原始|

为了向后兼容,不需要设置优先级。 如果应用未设置其通知的优先级,系统将提供默认优先级。 默认值如上表所示,与现有 Windows 版本的行为相匹配。

桌面行为的详细列表

|设备状态|优先级:高|优先级:中|优先级:低|优先级:极低|

|屏幕打开或接通电源|传送|传送|传送|传送|

|屏幕关闭和使用电池|传送|如果由用户豁免:交付 否则:批量|如果由用户豁免:交付 否则:缓存*|缓存|

|已启用节电|如果由用户豁免:交付 否则:缓存|如果由用户豁免:交付 否则:缓存|如果由用户豁免:交付 否则:缓存|缓存|

|使用电池 + 启用节电模式 + 屏幕关闭|如果由用户豁免:交付 否则:缓存 |如果由用户豁免:交付 否则:缓存|如果由用户豁免:交付 否则:缓存|缓存|

要在省电模式中豁免某个应用,用户必须前往“设置”中的“应用的电池使用情况”,然后选择“允许应用运行后台任务”。对于高、中和低优先级通知,此用户选择可将应用排除在省电模式之外。 你还可以调用 BackgroundExecutionManager API 以编程方式请求用户许可。

了解完这些,我们回到Toast相关的文章,以下是Toast的连接:

toast相关的资料

若要创建重要通知、警报、提醒和传入呼叫通知:

  • Reminder
  • Alarm
  • IncomingCall
  • Urgent

要求:必须运行Windows Insider Preview内部版本 22546 或更高版本才能使用重要通知。

记得添加按钮,不然会被降级为普通Toast

Win10下唤醒Aoac使用Reminder就可以。但是Win11下新增了专注模式,用户免打扰,所以这个Reminder就失效了。文档中说明Urgent可以突破免打扰;但是唤醒逻辑还是要遵循前面的内容;

以上就是本篇文章的全部内容了。

因为写这篇博客的时候在火车上,使用的是Win10电脑,只能等到家之后验证代码,后续会贴到群共享,或者你也可以按照文档自己尝试。

欢迎加群542633085一起交流 请备注你的技术方向

Aoac唤醒的软件方案的更多相关文章

  1. C/S软件方案

    互联网时代客户端软件的一些方案 纯Native开发, C++/C#/duilib+C++(Windows), Objective-c(Mac) Qt(Windows/Mac) NW.js/Electr ...

  2. 10个最好的免费PS图象处理软件方案

    说到照片和图像编辑/操纵,真的没有更好的应用,Adobe PS图象处理软件. 摄影师和创意工作室会同意这是总理的照片编辑应用期. 不幸的是,PS图象处理软件还配备了一个陡峭的学习曲线和价格标签,我们必 ...

  3. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc

    atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...

  4. 分布式数据存储 - MySQL主从复制高可用方案

    前面几篇文章说道MySQL数据库的高可用方案主从复制.主从复制的延迟产生原因.延迟检测及延迟解决方案(并未从根本上解决),这种主从复制方案保证数据的冗余的同时可以做读写分离来分担系统压力但是并非是高可 ...

  5. 全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)

    本文原作者“minminaya”,作者网站:minminaya.cn,为了提升文章品质,即时通讯网对内容作了幅修订和改动,感谢原作者. 1.引言 对于IM应用和消息推送服务的开发者来说,在Androi ...

  6. 业务限流场景简单实现方案:RateLimiter

    前因:因为本系统中,有大数据高并发的场景.在向下游系统发送请求的时候,需要限流.否则会造成下游系统的堵塞. 实现方案1: Thread.sleep(ms). 优点:简单粗暴,一行代码搞定 缺点:有点l ...

  7. Mycat节点扩缩容及高可用集群方案

    数据迁移与扩容实践: 工具目前从 mycat1.6,准备工作:1.mycat 所在环境安装 mysql 客户端程序. 2.mycat 的 lib 目录下添加 mysql 的 jdbc 驱动包. 3.对 ...

  8. 《推送开发全面盘点当前Android后台保活方案的真实运行效果》

        登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页   即时通讯网›专项技术区›推送开发全面盘点当前Android后台保活方案的真实运行效果(截止2 ...   帖子 打赏 分 ...

  9. (5.1)mysql高可用系列——高可用架构方案概述

    关键词:mysql高可用概述,mysql高可用架构 常用高可用方案 20190918 现在业内常用的MySQL高可用方案有哪些?目前来说,用的比较多的开源方案分内置高可用与外部实现,内置高可用有如下: ...

随机推荐

  1. 微前端(qiankun)主应用共享React组件

    前言 最近需要重构一个老项目,定的方案用微前端去改造.主应用是老的项目,微应用是新的项目,由于重构时间比较紧张,子应用还需要使用父应用的一些组件.过程中遇到一些问题,记录一下. 方案 我们知道qian ...

  2. Tarjan算法模板(USACO03FALL受欢迎的牛)

    好文章 #include<bits/stdc++.h> using namespace std; const int N = 10010, M = 50010; int n, m; int ...

  3. C语言- 基础数据结构和算法 - 队列的顺序存储

    听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友 ...

  4. 技术分享 | app自动化测试(Android)--元素定位方式与隐式等待

    原文链接 元素定位是 UI 自动化测试中最关键的一步,假如没有定位到元素,也就无法完成对页面的操作.那么在页面中如何定位到想要的元素,本小节讨论 Appium 元素定位方式. Appium的元素定位方 ...

  5. 【SpringBoot】快速入门

    博客主页:准Java全栈开发工程师 00年出生,即将进入职场闯荡,目标赚钱,可能会有人觉得我格局小.觉得俗,但不得不承认这个世界已经不再是以一条线来分割的平面,而是围绕财富旋转的球面,成为有钱人不是为 ...

  6. redis相关知识点

    redis 的相关知识点 启动 启动代码 redis-cli -a 密码 通用命令 expire: 设置有效期 expire name 10 key key * 相关数据类型 String set:添 ...

  7. # 【由浅入深_打牢基础】WEB缓存投毒(上)

    image-20220611092344882 [由浅入深_打牢基础]WEB缓存投毒(上) 1. 什么是WEB缓存投毒 简单的来说,就是利用缓存将有害的HTTP响应提供给用户 什么是缓存,这里借用Bu ...

  8. React基础中的单一标签包裹的问题

    先上一段代码: <div id="example"> </div function HelloMessage(props1) { return (<h1&g ...

  9. TopoLVM: 基于LVM的Kubernetes本地持久化方案,容量感知,动态创建PV,轻松使用本地磁盘

    正文 研发测试场景下,一般追求的是一键快速起环境,横向动态复制,一人一套,随起随用,用完即走.作为使用方,其不用关心实际的物理资源是怎样的,环境起在哪里,只要声明自己的使用需求即可.但作为方案构建者以 ...

  10. UiPath鼠标操作图像的介绍和使用

    一.鼠标(mouse)操作的介绍 模拟用户使用鼠标操作的一种行为,例如单击,双击,悬浮.根据作用对象的不同我们可以分为对元素的操作.对文本的操作和对图像的操作 二.鼠标对图像的操作在UiPath中的使 ...