Windows Phone 8.1:设备唯一 ID 的 DeviceExtendedProperties 或 DeviceStatus
Posted
技术标签:
【中文标题】Windows Phone 8.1:设备唯一 ID 的 DeviceExtendedProperties 或 DeviceStatus【英文标题】:Windows Phone 8.1: DeviceExtendedProperties or DeviceStatus for Device Unique ID 【发布时间】:2015-02-20 12:16:12 【问题描述】:我想在 Windows Phone 8.1 中获取设备 ID。
DeviceExtendedProperties 或 DeviceStatus 在 WP8.1 中不可用(没有 Microsoft.Phone.Info
命名空间)。我刚刚找到了 EasClientDeviceInformation
类,我无法从中获得 Id
。 Id
属性中存在异常:
其他属性也不是唯一的。
这里还有另一种解决方案,但我不知道使用起来是否安全可靠:(?)https://***.com/a/23537207/3682369
【问题讨论】:
【参考方案1】:是的,您可以使用GetPackageSpecificToken()
。我已经研究过了,还没有找到任何其他方法。尽管 MSDN 说Id
属性包含一些硬件信息,但它实际上是任何设备的唯一值,即使是相同型号的设备。所以你可以用它来识别用户的设备。
这就是我在我的应用程序中使用它的方式。随意使用我的代码:
private string GetDeviceId()
var token = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
var hardwareId = token.Id;
var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId);
byte[] bytes = new byte[hardwareId.Length];
dataReader.ReadBytes(bytes);
return BitConverter.ToString(bytes).Replace("-", "");
【讨论】:
很好的答案,而且效果很好。但返回的 ID 与 IMEI 不同。你知道这个ID和IMEI有什么区别吗? @AhmedKarim 这很可能是一个散列的 IMEI,但没有人确定。 好的,但它真的是独一无二的吗?我可以认为它对于每台设备都是独一无二的吗? @AhmedKarim 我很确定只要它被广告提供商使用。以上是关于Windows Phone 8.1:设备唯一 ID 的 DeviceExtendedProperties 或 DeviceStatus的主要内容,如果未能解决你的问题,请参考以下文章
Windows Phone 8.1 应用程序未完全在 Windows 10 设备上运行
如何将 Windows Phone 8.1 应用程序部署到 Windows 10 移动设备?
推送通知后台任务崩溃 Windows Phone 8.1 模拟器/设备