我有一个针对Windows Phone 7的应用程序。我在Windows 8桌面上使用Visual Studio 2012创建了该应用程序。我正在尝试在Windows Phone 8设备上使用该应用程序,并进行了一些更改。如何以编程方式检测设备是Windows Phone 7还是Windows Phone 8?
我有一个针对Windows Phone 7的应用程序。我在Windows 8桌面上使用Visual Studio 2012创建了该应用程序。我正在尝试在Windows Phone 8设备上使用该应用程序,并进行了一些更改。如何以编程方式检测设备是Windows Phone 7还是Windows Phone 8?
就像您在任何其他使用C#的平台上一样:Environment.OSVersion
public static bool IsWP8 { get { return Environment.OSVersion.Version >= TargetedVersion; } }
private static Version TargetedVersion = new Version(8, 0);
感谢原作者。
您不需要这样做。
无论是 Windows Phone 7 应用程序还是 Windows Phone 8 应用程序,它都可以在 Windows Phone 7 和 Windows Phone 8 设备上运行。
在 Windows Phone 8 上运行的 Windows Phone 7 应用程序不应该能够执行任何 Windows Phone 7 设备无法执行的操作。
MediaHistoryItem.MaxImageSize
属性,而不是检查操作系统。 - Justin Niessner这篇文章也有一些不错的策略。
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202996(v=vs.105).aspx
这不仅仅是关于运行时的问题,例如,您的代码可能在wp7上以一种方式运行,在wp8上则取决于API的可用性而有所不同。在这种情况下,使用#define可能是最好的选择,因为您真正关心的不是您正在运行的设备类型,而是您构建的SDK。