【问题标题】:Windows Phone 8.1: DeviceExtendedProperties or DeviceStatus for Device Unique IDWindows Phone 8.1:设备唯一 ID 的 DeviceExtendedProperties 或 DeviceStatus
【发布时间】:2015-02-20 12:16:12
【问题描述】:

我想在 Windows Phone 8.1 中获取设备 ID。

DeviceExtendedPropertiesDeviceStatus 在 WP8.1 中不可用(没有 Microsoft.Phone.Info 命名空间)。我刚刚找到了 EasClientDeviceInformation 类,我无法从中获得 IdId 属性中存在异常:

其他属性也不是唯一的。

这里还有另一种解决方案,但我不知道使用起来是否安全可靠:(?)
https://stackoverflow.com/a/23537207/3682369

【问题讨论】:

    标签: windows-phone-8.1 device unique-id


    【解决方案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 我很确定只要它被广告提供商使用。
    猜你喜欢
    • 1970-01-01
    • 2014-06-12
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多