求助:MAUI .NET Windows应用如何获取唯一设备ID
.NET MAUI Windows 平台唯一设备ID获取方案
核心实现依赖Windows官方API
Windows.System.Profile.HardwareIdentification,该API生成的标识基于设备硬件组件,在硬件无重大变更时保持稳定,是Windows平台推荐的应用级唯一标识方案。代码实现(使用条件编译隔离Windows平台逻辑):
#if WINDOWS using Windows.System.Profile; using Windows.Storage.Streams; #endif public string GetUniqueDeviceId() { #if WINDOWS // 获取硬件标识令牌 var hardwareToken = HardwareIdentification.GetPackageSpecificToken(null); var hardwareIdBuffer = hardwareToken.Id; // 将缓冲区转换为字节数组 var dataReader = DataReader.FromBuffer(hardwareIdBuffer); byte[] hardwareIdBytes = new byte[hardwareIdBuffer.Length]; dataReader.ReadBytes(hardwareIdBytes); // 转换为无连字符的十六进制字符串 return BitConverter.ToString(hardwareIdBytes).Replace("-", string.Empty); #else return string.Empty; #endif }
- 关键说明:
- 该ID是应用包专属的,同一设备上不同包名的应用会得到不同标识,Windows出于隐私保护不提供全局设备唯一ID,这是最合规的替代方案。
- 当设备关键硬件(如主板、系统存储)更换时,标识会发生变化。
- 调用此API无需额外申请权限,MAUI Windows应用默认支持。
内容的提问来源于stack exchange,提问作者Rob White
相关产品推荐
相关产品推荐

