检测正运行你的应用的平台

来源:互联网 发布:右脑开发 知乎 编辑:程序博客网 时间:2024/05/22 18:55

原文:https://msdn.microsoft.com/zh-cn/library/windows/apps/dn705767.aspx#detecting_the_platform


检测正运行你的应用的平台

介绍 Windows 10 中面向应用所做的更改。新增的概念模型是,应用面向名为设备系列的概念展开。新增的概念模型是,应用面向 Universal Windows Platform (UWP),并且可跨所有 Windows 设备运行。这样它便可以选择充分利用特定设备系列所独有的功能。特别是,该应用还可以选择自行限制为面向一个或多个设备系列(如果需要)。有关设备系列有哪些—以及如何确定要面向哪一个设备系列—的详细信息,请参阅UWP App 指南。

如果你在 Universal 8.1 App 中具有代码(可检测到运行它的操作系统),你可能需要做一些更改,具体取决于理性逻辑。如果应用正在通过操作系统传递值,但没有在该系统上执行任何操作,你可能需要继续收集该操作系统的相关信息。

注意  我们不建议你通过操作系统或设备系列来检测某些功能是否存在。通常情况下,标识当前操作系统或设备系列并不是确定是否存在特定的操作系统功能或设备系列功能的最佳方式。与其检测操作系统或设备系列(版本号),不如自行测试功能是否存在(请参阅查看你的条件编译代码)。如果你必须请求某个特定操作系统或设备系列,请确保将其用作受支持的最低版本,而不是针对某一版本设计相应测试。

若要定制你的应用的 UI 以适应不同的设备,可以使用我们建议的多种技术。不过,你也可以像往常那样继续使用可自动调整大小的元素和动态布局面板。在 XAML 标记中,元素大小继续以有效像素(之前称为视图像素)为单位,以便 UI 能适应不同的分辨率和比例因子(请参阅有效像素、观看距离和比例因子)。并且,通过使用视觉状态管理器的自适应触发器和设置器,让 UI 能适应相应的窗口大小(请参阅 UWP App 指南)。

但是,在遇到必须检测设备系列的情况时,你可以执行此操作。在本示例中,我们将使用 AnalyticsVersionInfo 类导航到为移动设备系列定制的页面(如果适用),并且我们保证可通过其他方式回退到默认页面。

if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile")rootFrame.Navigate(typeof(MainPageMobile), e.Arguments);elserootFrame.Navigate(typeof(MainPage), e.Arguments);

你的应用还可以通过有效的资源选择因素,确定正在运行它的设备系列。下面的示例演示了如何强制执行此操作;ResourceContext.QualifierValues 主题描述了在加载特定于设备系列的资源(基于设备系列规格)时有关该类的更为典型的用例

var qualifiers = Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().QualifierValues;string deviceFamilyName;bool isDeviceFamilyNameKnown = qualifiers.TryGetValue("DeviceFamily", out deviceFamilyName);




0 0
原创粉丝点击