Как получить UUID на WP
Вот почему-то добрые дяди из Майкрософта в очередной раз нам напакастили, и не предоставили человеческой возможности получить uuid, поэтому все придумывают, кто что:
1. Сгенерировать какой-то guid и сохранить, для дальнейшего использования
private Guid CreateGuid()
{
var guid = new Guid();
IsolatedStorageSettings.ApplicationSettings["guid"] = guid;
IsolatedStorageSettings.ApplicationSettings.Save();
return guid;
}
private Guid GetGuid()
{
if (IsolatedStorageSettings.ApplicationSettings.Contains("guid"))
return (Guid)IsolatedStorageSettings.ApplicationSettings["guid"];
else
return CreateGuid();
}
Причём, не так красиво, как я написал 😉
Но тут есть минус, после переустановки приложения и guid будет другой. По поводу вероятности пересечения между устройствами, она весьма низкая.
2. Довольствоваться различными извращениями с Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId");
http://stackoverflow.com/questions/13975315/get-unique-device-id-udid-under-windows-phone-8
http://stackoverflow.com/questions/8477664/how-can-i-generate-uuid-in-c-sharp
В общем-то, путь верный, т.к. значения будут уникальными, и не будут меняться после переустановки приложения, но всё же, это не то, чего мы хотим:
3. А вот чего мы все так долго хотели, так это нечто вроде:
public static string GetMeNowUUID()
{
byte[] d = new byte[16];
Array.Copy((byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId"), d, d.Length);
return new Guid(d).ToString();
}
Тут мы так же получаем DeviceUniqueId, и извращаемся с ним, но в итоге получаем то, чего так долго ждали: 193d62da-1697-73be-77b9-fd1d0b4cb858. Всегда!
Вроде просто, но нигде так и не нашёл.