如何检测在 Windows 10 Mobile 上启动的 WP8.1 应用程序?
How to detect that WP8.1 app launched on Windows 10 Mobile?
我需要在我的 WP8.1 应用程序代码中检查 OS 版本(WP 8.1 或 W10)。有什么更好的方法来做到这一点?可能是反射或一些特殊的 API 用于此目的?
我没有找到任何其他方法来做到这一点,所以这是我的方法。
以下 属性 IsWindows10
检测 Windows 8.1 或 Windows Phone 8.1 应用是否 运行 在 Windows 10台(包括Windows 10台移动)设备。
#region IsWindows10
static bool? _isWindows10;
public static bool IsWindows10 => (_isWindows10 ?? (_isWindows10 = getIsWindows10Sync())).Value;
static bool getIsWindows10Sync()
{
bool hasWindows81Property = typeof(Windows.ApplicationModel.Package).GetRuntimeProperty("DisplayName") != null;
bool hasWindowsPhone81Property = typeof(Windows.Graphics.Display.DisplayInformation).GetRuntimeProperty("RawPixelsPerViewPixel") != null;
bool isWindows10 = hasWindows81Property && hasWindowsPhone81Property;
return isWindows10;
}
#endregion
它是如何工作的?
在 Windows 8.1 中 Package
class 有一个 DisplayName
属性,而 Windows Phone 8.1 没有'没有。
在 Windows Phone 8.1 中,DisplayInformation
class 有一个 RawPixelsPerViewPixel
属性,而 Windows 8.1 没有。
Windows 10(包括移动)具有这两个属性。这就是我们如何检测 OS 应用 运行 的方式。
我需要在我的 WP8.1 应用程序代码中检查 OS 版本(WP 8.1 或 W10)。有什么更好的方法来做到这一点?可能是反射或一些特殊的 API 用于此目的?
我没有找到任何其他方法来做到这一点,所以这是我的方法。
以下 属性 IsWindows10
检测 Windows 8.1 或 Windows Phone 8.1 应用是否 运行 在 Windows 10台(包括Windows 10台移动)设备。
#region IsWindows10
static bool? _isWindows10;
public static bool IsWindows10 => (_isWindows10 ?? (_isWindows10 = getIsWindows10Sync())).Value;
static bool getIsWindows10Sync()
{
bool hasWindows81Property = typeof(Windows.ApplicationModel.Package).GetRuntimeProperty("DisplayName") != null;
bool hasWindowsPhone81Property = typeof(Windows.Graphics.Display.DisplayInformation).GetRuntimeProperty("RawPixelsPerViewPixel") != null;
bool isWindows10 = hasWindows81Property && hasWindowsPhone81Property;
return isWindows10;
}
#endregion
它是如何工作的?
在 Windows 8.1 中 Package
class 有一个 DisplayName
属性,而 Windows Phone 8.1 没有'没有。
在 Windows Phone 8.1 中,DisplayInformation
class 有一个 RawPixelsPerViewPixel
属性,而 Windows 8.1 没有。
Windows 10(包括移动)具有这两个属性。这就是我们如何检测 OS 应用 运行 的方式。