Windows Phone 8的应用程序的DeviceUniqueId是否特定于应用程序而不是设备?

时间:2013-03-06 14:34:24

标签: windows-phone-7 windows-phone-8 windows-phone

我使用DeviceUniqueId对象的DeviceExtendedProperties属性来识别我的Windows Phone应用中的设备。

在Windows Phone 7上,它运行良好,设备ID在所有应用程序中保持稳定。

我将我的应用迁移到Windows Phone 8(针对WP7和8),它仍然照常运行。

但是,我刚刚开发了一个仅针对WP8的应用程序,我注意到DeviceUniqueId与我的其他应用程序(在同一设备上运行)不同。

可以肯定的是,我创建了一些其他测试应用程序。

以下是同一设备(诺基亚Lumia 820)的示例:

  • App1(目标WP7和8),设备ID:422c3795ae12b92b18882bd93ea454b3
  • App2(目标WP7和8),设备ID:422c3795ae12b92b18882bd93ea454b3
  • App3(仅限WP8),设备ID:19ff7b4c669b1cbeaf0e42ab1e6796ea
  • App4(仅针对WP8),设备ID:240fe4501de11078313a63dde118d9ae

这是打算吗?是否可以获得仅限WP8的应用程序的固定设备ID?

我无法在MSDN上找到有关此行为的任何正式文档。

感谢。

2 个答案:

答案 0 :(得分:2)

根据官方MSDN document

  

DeviceUniqueId - 设备的唯一哈希值。这个值将是   在所有应用程序中保持不变,如果是手机则不会改变   使用新版本的操作系统进行了更新。应用   不应该使用它来识别用户,因为设备ID会   即使转让设备的所有权,也保持不变。

在Windows Mobile 6.5中,哈希为was app-specific。对于Windows Phone,情况并非如此。尽管如此,ID是特定于发布者的。尝试更改清单中的发布者GUID,您将看到会发生什么。

答案 1 :(得分:1)

对于Windows Phone 8,MSDN上的定义是:

对于在Windows Phone 8设备及更高版本上运行的Windows Phone 8应用程序,DeviceUniqueId值对于每个设备和每个应用程序发布者都是唯一的。对于Windows Phone 8应用程序,DeviceUniqueId在功能上与Windows运行时中的HostInformation.PublisherHostId属性相同。

Link to MSDN - DeviceExtendedProperties Class