我的方案是我有一个商店应用后台任务要定期调用(或由推送通知触发).调用后台任务时,它会检查是否满足某个条件.如果是,则应执行将设备从连接待机状态唤醒的操作.我需要退出CS的原因是我需要在满足条件时启动进程.此过程将为TCP连接提供运行一段延长的时间.它有点像远程桌面服务器,它会在连接请求时自动唤醒,但通常在连接待机状态下以节省电量(设备处于电池供电状态).
我想到的第一种方法是使用“唤醒计算机运行”选项的计划任务.但根据this post,它在连接待机模式下不会唤醒机器.
现在,如果有一种方法可以通过编程方式执行此操作,那么将其作为商店应用程序后台任务或会话0服务来执行此操作将是合乎逻辑的,这两者都可以在连接待机期间短暂运行.但问题是 – 退出连接待机时要执行哪些操作?
根据Connected standby wake sources,各种外围硬件可以唤醒设备.例如,按下电源按钮可通过GPIO中断唤醒设备.所以问题归结为有没有办法通过产生这样的GPIO中断来“模拟”按下电源按钮?我对windows内核/驱动程序编程了解不多.任何建议将被认真考虑.我认为这是一种可行的方法,因为WDTF method可以将系统放入CS并在给定间隔后唤醒.
另一种看似可能的方法是将“吐司通知”生成为“VoIP”应用.如Introduction to Connected Standby中所述,锁定屏幕应用程序安排的后台任务可以发送Toast通知,该通知仅在显示器关闭时生成短声音.只有在用户按下电源按钮后才会显示吐司.所以我假设以这种方式生成吐司不会唤醒设备.但是,该文档确实提到“VoIP”应用程序可以生成更长的自动播通通知,自定义铃声,并且显示器已打开.我认为在这种情况下可能会唤醒设备.但该文件未提供有关如何编写此类“VoIP”应用程序的任何参考.