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

时间:2014-04-28 16:28:45

标签: c# windows-phone-8 windows-runtime windows-phone windows-store-apps

如何使用以下代码使我的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。 如果这是不可能的,因为我开始害怕是这样的,我的替代选择是什么?

1 个答案:

答案 0 :(得分:1)

<强>已更新

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

此时,它似乎没有直接替换,但是使用DisplayRequest类执行了变通办法。

<强> OLD

如果您仔细检查PhoneApplicationService的文档,您会发现Windows Phone 8.1仍然支持它。

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

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

#if WINDOWS_PHONE_APP

PhoneApplicationService.Current.ApplicationIdleDetectionMode = 
    IdleDetectionMode.Disabled;
// etc.

#endif

您可以在以下位置阅读有关如何在Universal Applications中共享不同代码位的更多信息:

How to share code among different Universal Windows apps(其中讨论了文章底部的上述方法)