来自 Desktop Bridge 的 RequestAccessKindAsync
RequestAccessKindAsync from Desktop Bridge
我有 Win32 桌面桥应用程序,它使用后台任务从 WNS 接收推送通知。我在 C++-WinRT
上使用 UWP 后台任务 APIs
我希望即使在 OS 处于睡眠状态时也能够接收推送通知,以便它醒来并由应用程序处理推送通知。默认情况下 OS 不唤醒。它仅在 System
->Battery
->See which apps are affecting your battery life
->Click my app ->Uncheck Let Windows decide
选项中手动更改设置值后才执行(默认情况下始终选中)并检查 Allow the app to run background taks
。现在我想做的是手动编写代码以获得更好的用户体验。
RequestAccessKindAsync API 允许用户通过向用户显示弹出通知来更改以上设置值,我可以在 UWP
C#
中毫无问题地做到这一点示例应用程序。但是相同的代码不会显示来自 C++-WinRT
上我的桌面桥的弹出通知。它只是 returns 以下代码的错误值
auto result = co_await BackgroundExecutionManager::RequestAccessKindAsync(BackgroundAccessRequestKind::AlwaysAllowed,
L"App needs to use background to catch push notifications while device is in sleep");
谁能确认 RequestAccessKindAsync
API 可以在桌面桥上运行?如果不是,那么我如何确保 OS 并且应用程序在收到推送通知时始终能够从睡眠中唤醒?
UPD:提出了从桌面桥 here
启用此 API 的请求
这是一项缺失的功能。当我们在几个版本前设计这个 API 时,我们没有考虑桌面桥应用程序会调用它 - 但显然有一个支持这个的用例。我已将此差距通知团队,但我也鼓励您在此处记录功能请求:https://wpdev.uservoice.com/
两种可能的解决方法:
(1) 您可以将 dummy/empty UWP 前台应用程序添加到您的桌面桥接应用程序。然后您可以在启动时启动它并从那里请求后台访问。这会有点难看,但你可以让它看起来像一个闪屏:-)
(2) 您可以指示用户进入“设置”应用以将您的应用设置为始终允许。您可以通过深入 link 的省电设置来帮助他们做到这一点,但他们仍然需要手动拨动开关。
我有 Win32 桌面桥应用程序,它使用后台任务从 WNS 接收推送通知。我在 C++-WinRT
我希望即使在 OS 处于睡眠状态时也能够接收推送通知,以便它醒来并由应用程序处理推送通知。默认情况下 OS 不唤醒。它仅在 System
->Battery
->See which apps are affecting your battery life
->Click my app ->Uncheck Let Windows decide
选项中手动更改设置值后才执行(默认情况下始终选中)并检查 Allow the app to run background taks
。现在我想做的是手动编写代码以获得更好的用户体验。
RequestAccessKindAsync API 允许用户通过向用户显示弹出通知来更改以上设置值,我可以在 UWP
C#
中毫无问题地做到这一点示例应用程序。但是相同的代码不会显示来自 C++-WinRT
上我的桌面桥的弹出通知。它只是 returns 以下代码的错误值
auto result = co_await BackgroundExecutionManager::RequestAccessKindAsync(BackgroundAccessRequestKind::AlwaysAllowed,
L"App needs to use background to catch push notifications while device is in sleep");
谁能确认 RequestAccessKindAsync
API 可以在桌面桥上运行?如果不是,那么我如何确保 OS 并且应用程序在收到推送通知时始终能够从睡眠中唤醒?
UPD:提出了从桌面桥 here
启用此 API 的请求这是一项缺失的功能。当我们在几个版本前设计这个 API 时,我们没有考虑桌面桥应用程序会调用它 - 但显然有一个支持这个的用例。我已将此差距通知团队,但我也鼓励您在此处记录功能请求:https://wpdev.uservoice.com/
两种可能的解决方法:
(1) 您可以将 dummy/empty UWP 前台应用程序添加到您的桌面桥接应用程序。然后您可以在启动时启动它并从那里请求后台访问。这会有点难看,但你可以让它看起来像一个闪屏:-)
(2) 您可以指示用户进入“设置”应用以将您的应用设置为始终允许。您可以通过深入 link 的省电设置来帮助他们做到这一点,但他们仍然需要手动拨动开关。