在Windows Phone 8下获取唯一设备ID(UDID)

fle*_*exo 47 c# windows-phone-7 windows-phone-8

是否有任何唯一的设备ID(UDID)或任何类似的ID,我可以在Windows Phone 8(WP8)上读取,不会随硬件更改,应用程序重新安装等而改变?

在较旧的Windows Phone版本中,存在以下ID:WP7:Windows Phone的设备状态

WP7.1:DeviceStatus类

但是它们不再适用于SDK 8.0.

为什么我问: 想法是用户在第一次启动应用程序时获得一些免费信用,我想避免用户只是重新安装应用程序以获得新的免费信用.使用电子邮件或电话号码注册可以解决这个问题,但如果可以,我不希望在第一次注册时打扰用户.

- -/// - -解 - - - - -

我可以确认DeviceExtendedProperties.GetValue("DeviceUniqueId")仍然可以在WP 8.0中运行.当我阅读以下文字时有点困惑:

在Windows Phone OS 7.0中,此类用于查询特定于设备的属性.在Windows Phone OS 7.1中,不推荐使用DeviceExtendedProperties中的大多数属性,而应使用新的DeviceStatus类.但是,在适当的情况下,您仍然可以使用以下任何未弃用的属性.

MSDN:DeviceExtendedProperties类

我可以运行以下代码,删除应用程序并重新安装它并获得相同的ID:

byte[] myDeviceID = (byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId");
string DeviceIDAsString = Convert.ToBase64String(myDeviceID);
MessageBox.Show(DeviceIDAsString);
Run Code Online (Sandbox Code Playgroud)

Fra*_*mas 31

我还没有开始为Windows Phone 8开发,仍然在7,但您仍然应该能够使用原始的DeviceExtendedProperties类来撤回设备唯一ID.

DeviceExtendedProperties.GetValue("DeviceUniqueId")
Run Code Online (Sandbox Code Playgroud)

  • 还应在WMAppMenifest.xml中检查ID_CAP_IDENTITY_DEVICE (2认同)

gia*_*der 20

我有这个问题,返回null值.然后记得它需要打开.

WMAppManifest.xml- > Capabilities选项卡 - >打开ID_CAP_IDENTITY_DEVICE


小智 8

这个DeviceUniqueId有一个扭曲 - 它只对一个发布者是唯一的.因此,它不是设备范围内的唯一标识符,而是一个发布商的唯一设备ID.我们注意到,当我们处理一些客户项目时,我们尝试从不同的帐户识别相同的电话(客户在两个不同的帐户下发布).

  • 这意味着来自同一发布者的两个差异应用将从给定设备检索相同的DeviceUniqueId值,但是由第二个发布者编写的应用将检索差异DeviceUniqueId. (2认同)