我想在Windows Phone 8.1 中获取设备ID。
WP8.1中没有DeviceExtendedProperties或DeviceStatus(没有Microsoft.Phone.Info
命名空间)。我刚刚找到了EasClientDeviceInformation
类,我无法从中获取Id
。 Id
属性中有一个例外:
其他属性并不是唯一的。
此处还有另一种解决方案,但我不知道使用是否安全或可靠:(?)
https://stackoverflow.com/a/23537207/3682369
答案 0 :(得分:5)
是的,您可以使用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("-", "");
}