4

我使用对象的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 上找到有关此行为的任何正式文档。

谢谢。

4

2 回答 2

2

根据官方MSDN 文档

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

在 Windows Mobile 6.5 中,哈希是特定于应用程序的。Windows Phone 并非如此。然而,话虽如此,ID 是特定于发布者的。尝试更改清单中的发布者 GUID,您将看到会发生什么。

于 2013-03-07T00:46:35.890 回答
1

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

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

链接到 MSDN - DeviceExtendedProperties 类

于 2013-10-24T18:49:45.020 回答