获取Windows 8的稳定唯一设备ID

时间:2012-11-09 20:02:01

标签: windows windows-8 winjs

因此,有关于获取Windows 8设备的唯一标识符的各种帖子,例如this one。然而,还认识到当各种系统组件改变时标识符改变。来自the docs

  

硬件漂移是应用程序不应该按原样使用ASHWID字节流的原因。如果更改或关闭了一些硬件组件,API将返回不同的ASHWID。该应用程序有可能错误地将同一设备识别为新设备   设备。以下是一些可能会导致硬件漂移的合理情况:

     
      
  • 一天结束时,用户希望将电池放回家,直到她回家,因此她关闭蓝牙和Wi-Fi,同时保持3G / 4G与云的连接。
  •   
  • 用户插入USB 3G数据卡。
  •   
  • 底层OS /片上系统电源管理可能会关闭某些内核。
  •   

这是一个非常抱歉的事态。文档建议查看ASHWID(应用程序特定的硬件ID)并对不太可能改变和忽略(给予权重0)的各种组件加权,这些组件是可变的,比如是否存在扩展坞。但是,我没有看到任何关于如何识别组件的文档。标识符我只收到一个数字列表。

是否有更好的方法来获得稳定的唯一设备ID(如果它是特定的包,那就没关系,只要它是每个设备/包组合的唯一)? 或者,是否有人可以向我指出如何识别由HardwareIdentification.GetPackageSpecificToken生成的令牌中的组件的文档?

更新

制定了组件部分。但仍然对获得稳定身份的更好方法感兴趣。

  

字节流由四个字节的多个组组成。前两个字节包含组件的类型,接下来的两个字节包含值。使用下表确定每个组件的类型:

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用Receipts API。文档表明它在“收据”元素下有一个设备标识符“ReceiptDeviceId”。唯一的问题是API仅在用户登录到商店时才有效。