在 windows 通用 8.1 中获取 OS 版本
Get OS Version in windows universal 8.1
我正在开发一个 Windows 通用 8.1 应用程序。我想获得 os 版本。在 Windows 10 Mobile 之前我可以支持 ose 那个版本是 8.1 但目前这个假设是不正确的。有没有办法在 Windows 8.1 通用应用程序中获取 os 版本?
Windows Phone 8.1 Silverlight 应用程序可以使用.NET 版本的 API。 Universal 8.1 应用程序不支持获取版本号的机制,但您可以尝试使用反射获取 Windows 10 AnalyticsInfo
class,它至少会告诉您版本号如果您在 Windows 10.
运行ning
注意:检查OS版本几乎总是错误的做法,除非你只是简单地展示将其发送给用户(例如,在 "About" 框中)或将其发送到您的后端分析服务器以获取号码 c运行ching。它不应该被用来做出任何 运行 时间的决定,因为一般来说,它不能很好地代表 无论你实际上想做什么 。
这是一个示例:
var analyticsInfoType = Type.GetType(
"Windows.System.Profile.AnalyticsInfo, Windows, ContentType=WindowsRuntime");
var versionInfoType = Type.GetType(
"Windows.System.Profile.AnalyticsVersionInfo, Windows, ContentType=WindowsRuntime");
if (analyticsInfoType == null || versionInfoType == null)
{
Debug.WriteLine("Apparently you are not on Windows 10");
return;
}
var versionInfoProperty = analyticsInfoType.GetRuntimeProperty("VersionInfo");
object versionInfo = versionInfoProperty.GetValue(null);
var versionProperty = versionInfoType.GetRuntimeProperty("DeviceFamilyVersion");
object familyVersion = versionProperty.GetValue(versionInfo);
long versionBytes;
if (!long.TryParse(familyVersion.ToString(), out versionBytes))
{
Debug.WriteLine("Can't parse version number");
return;
}
Version uapVersion = new Version((ushort)(versionBytes >> 48),
(ushort)(versionBytes >> 32),
(ushort)(versionBytes >> 16),
(ushort)(versionBytes));
Debug.WriteLine("UAP Version is " + uapVersion);
我正在开发一个 Windows 通用 8.1 应用程序。我想获得 os 版本。在 Windows 10 Mobile 之前我可以支持 ose 那个版本是 8.1 但目前这个假设是不正确的。有没有办法在 Windows 8.1 通用应用程序中获取 os 版本?
Windows Phone 8.1 Silverlight 应用程序可以使用.NET 版本的 API。 Universal 8.1 应用程序不支持获取版本号的机制,但您可以尝试使用反射获取 Windows 10 AnalyticsInfo
class,它至少会告诉您版本号如果您在 Windows 10.
注意:检查OS版本几乎总是错误的做法,除非你只是简单地展示将其发送给用户(例如,在 "About" 框中)或将其发送到您的后端分析服务器以获取号码 c运行ching。它不应该被用来做出任何 运行 时间的决定,因为一般来说,它不能很好地代表 无论你实际上想做什么 。
这是一个示例:
var analyticsInfoType = Type.GetType(
"Windows.System.Profile.AnalyticsInfo, Windows, ContentType=WindowsRuntime");
var versionInfoType = Type.GetType(
"Windows.System.Profile.AnalyticsVersionInfo, Windows, ContentType=WindowsRuntime");
if (analyticsInfoType == null || versionInfoType == null)
{
Debug.WriteLine("Apparently you are not on Windows 10");
return;
}
var versionInfoProperty = analyticsInfoType.GetRuntimeProperty("VersionInfo");
object versionInfo = versionInfoProperty.GetValue(null);
var versionProperty = versionInfoType.GetRuntimeProperty("DeviceFamilyVersion");
object familyVersion = versionProperty.GetValue(versionInfo);
long versionBytes;
if (!long.TryParse(familyVersion.ToString(), out versionBytes))
{
Debug.WriteLine("Can't parse version number");
return;
}
Version uapVersion = new Version((ushort)(versionBytes >> 48),
(ushort)(versionBytes >> 32),
(ushort)(versionBytes >> 16),
(ushort)(versionBytes));
Debug.WriteLine("UAP Version is " + uapVersion);