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

4
如何让我的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中推荐的解决方法是什么?

附注: 如果这不可能,正如我开始担心的那样,那么我的替代选项是什么?


我不相信目前XAML应用程序支持这个。 - Shawn Kendrot
@ShawnKendrot 我希望这不是事实。 - Gerharddc
你是在尝试构建通用应用程序还是仅限于 Windows Phone 8.1 的普通应用程序? - Justin Niessner
1个回答

1

更新

在构建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 应用之间共享代码(其中在文章底部讨论了上述方法)


我实际上并没有在共享部分上工作,而是直接在WP8.1部分工作,但Visual Studio找不到我的对PhoneApplicationService的引用。 - Gerharddc
@Gerhman - 好的。那么你的问题让我感到困惑。没有 Windows Phone 8.1 Runtime(商店应用程序)。你要么编写 Windows 8.1 RT(商店)应用程序,要么编写 Windows Phone 8.1 应用程序。对于你可用的内容有很大的区别。 - Justin Niessner
我也曾这样想,但似乎有所区别。http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn632732.aspx 表明RT和Silverlight应用程序有不同的库。 - Gerharddc
不同之处在于,RT应用程序似乎使用与Win8相同的基本运行时,而Silverlight应用程序使用WP特定的运行时。 - Gerharddc
Justin,你可以使用Silverlight或Runtime构建Windows Phone 8.1应用程序,但不能同时使用两者。虽然文档中说它在8.1中得到支持,但它只在Silverlight 8.1中得到支持。"通用应用程序"只是基于Runtime的应用程序。 - Shawn Kendrot
我对此感到震惊,他们为什么要这样做 :( 我在哪里可以向微软投诉。难怪大多数开发人员都远离 :( - J86

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接