如何使用以下代码使我的
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.
如果这是不可能的,因为我开始害怕是这样的,我的替代选择是什么?
解决方法
更新
构建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
您可以在以下位置阅读有关如何在Universal Applications中共享不同代码位的更多信息:
How to share code among different Universal Windows apps(讨论了文章底部的上述方法)