在锁屏下运行Windows Phone 8.1 RT应用程序

本文关键字:RT 应用程序 Phone Windows 运行 | 更新日期: 2023-09-27 18:00:47

如何使用以下代码使我的Windows Phone 8.1应用程序像在Windows Phone 8中一样继续在锁屏下运行:

        PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
        PhoneApplicationFrame rootFrame = App.Current.RootVisual as PhoneApplicationFrame;
        if (rootFrame != null)
        {
            rootFrame.Obscured += new EventHandler<ObscuredEventArgs>(rootFrame_Obscured);
            rootFrame.Unobscured += new EventHandler(rootFrame_Unobscured);
        }

我正在使用Windows Phone 8.1运行时(存储)应用程序,而不是Silverlight类型的应用程序,因此一开始,PhoneApplicationService似乎不是此API的一部分,因此以上代码将不起作用。有人知道在Windows Phone 8.1中推荐的方法是什么吗?

PS。如果这不可能,就像我开始担心的那样,我的替代选择是什么?

在锁屏下运行Windows Phone 8.1 RT应用程序

更新

构建RT Windows Phone 8.1应用程序时,PhoneApplicationService不再可用(仅适用于Silverlight Windows Phone 8.1的应用程序)。

在这一点上,看起来没有直接的替换,但使用DisplayRequest类可以执行一些变通方法。

如果仔细查看PhoneApplicationService的文档,您会注意到它在Windows Phone 8.1中仍然受支持。

我猜你正在构建一个通用应用程序,并试图将此代码放入Windows 8.1和Windows Phone 8.1项目都使用的共享项目中。

在这种情况下,您需要使用支持的预处理器指令来指定代码的特定于平台的部分:

#if WINDOWS_PHONE_APP
PhoneApplicationService.Current.ApplicationIdleDetectionMode = 
    IdleDetectionMode.Disabled;
// etc.
#endif

您可以在以下位置阅读更多关于如何在通用应用程序中共享不同代码位的信息:

如何在不同的通用Windows应用程序之间共享代码(在文章底部讨论了上述方法)