如何使用以下代码使我的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。 如果这是不可能的,因为我开始害怕是这样的,我的替代选择是什么?
答案 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(其中讨论了文章底部的上述方法)