如何在Windows Phone和Windows 8 Store中获取到设备ID

背景 很多情况下,我们需要去辨识当前App运行的设备,以便应用一些适合此设备的内容。Windows Phone 7时代,我们有一些原生的去获取设备号的方法。但是来到Windows Phone 8时代,却有些改变。至少在Windows 8 RTM中,获取Unique ID的方法消失了。但是这个问题在这一年里被广泛的提及。 解决方法 Windows Phone 7.X 典型用法: (注意:不要忘记把ID_CAP_IDENTITY_DEVICE加入到App Manifest里面) 1: byte[] myDeviceID = (byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue(“DeviceUniqueId”); 2: 3: string DeviceIDAsString = Convert.ToBase64String(myDeviceID); 在Microsoft.Phone.Info.DeviceExtendedProperties中有一句话需要注意: 在 Windows Phone OS 7.0 中,此类被用来查询特定于设备的属性。在 Windows Phone OS 7.1 中,DeviceExtendedProperties 的大多数属性已弃用,而应改用新的 DeviceStatus 类。但是,在适当时,您仍然可以使用以下任何未弃用的属性。 不管怎样,我们依然需要使用DevieExtendedProperties去获取“DeviceUniqueID”。因为在新的Microsoft.Phone.Info.DeviceStatus中没有被提及。 Windows Phone 8 当然,上文提及的API在Windows Phone 8中还是可以使用的。但是新的API在Windows Phone 中也有所提及。使用HostInformation.PublisherHostId可以直接获取到一段包含设备号的string。并且,这个API可以在.NET和C++中使用。不过,这里也有一些改变,对于在Windows Phone 8或后续版本中运行的不同的Windows Phone 8的app来说,DeviceUniqueID的值也是不一样的。换一种说法也就是,两个App分别被不同的Windows…

0

how to get unique device id for Windows 8 and Windows Phone app

Background: In some situation we may want to identify different device that the app runs on in order to apply device-specific content or behavior. Original from Windows Phone 7 ago, we got direct solution to retrieve the device unique ID for a WP device, and things were got a little changed (improved) for Windows Phone…

2