C# UWP应用程序中的设备ID(阈值1)

C# UWP应用程序中的设备ID(阈值1),c#,win-universal-app,windows-10,C#,Win Universal App,Windows 10,在Phone 8.1中,您可以使用手机获取设备ID,即使手机上说它存在于桌面应用程序中,但它不存在于UWP应用程序中 获取UWP硬件ID的替代方案或方法是什么?将应用程序从Windows(Phone)8(.1)迁移到Windows通用平台时,您遇到了一个常见问题 您没有看到硬件标识的原因很简单:您没有引用所需的源 您只能看到AnalyticsInfo和AnalyticsVersionInfo。这是因为它们是通用设备系列的一部分,如底部文档页()所述 然而,正如阿德里亚诺·阿尔里德在评论中所说的

在Phone 8.1中,您可以使用手机获取设备ID,即使手机上说它存在于桌面应用程序中,但它不存在于UWP应用程序中


获取UWP硬件ID的替代方案或方法是什么?

将应用程序从
Windows(Phone)8(.1)
迁移到
Windows通用平台时,您遇到了一个常见问题

您没有看到
硬件标识的原因很简单:您没有引用所需的源

您只能看到
AnalyticsInfo
AnalyticsVersionInfo
。这是因为它们是通用设备系列的一部分,如底部文档页()所述

然而,正如阿德里亚诺·阿尔里德在评论中所说的那样,
HardwareIdentification
不是通用设备系列的一部分,而是
桌面设备系列和
移动设备系列的一部分

要使信息可用,您必须添加对特定扩展名的引用:

之后,请确保在调用该类型之前检查该类型是否存在:

if (Windows.Foundation.Metadata.ApiInformation
    .IsTypePresent("Windows.System.Profile.HardwareIdentification"))

这并不意味着它的存在,如果你的目标是通用应用程序(只有移动和桌面)。这是合理的,因为硬件标识不适用于所有UWP支持的目标。@AdrianoRepetti您是对的。但我不同意合理的说法——每台设备都应该有一个唯一的ID。我想不出哪一台设备没有ID。