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 类,我无法从中获得 IdId 属性中存在异常:

其他属性也不是唯一的。

这里还有另一种解决方案,但我不知道使用起来是否安全可靠:(?)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 模拟器/设备

在 Windows Phone 8.1 XAML 中获取设备屏幕分辨率

Windows Phone 8.1 上的 WiFi 直连

为啥重启我的设备后 Windows Phone 8.1 后台任务不起作用?