Как получить 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. Всегда!
Вроде просто, но нигде так и не нашёл.