Я не могу получить свой ANID?

Я добавил в WMAppManifest.xml:

  • <Capability Name="ID_CAP_IDENTITY_DEVICE" />
  • <Capability Name="ID_CAP_IDENTITY_USER" />

Так почему я продолжаю получать пустые строки из:

        public static string GetWindowsLiveAnonymousID()
        {
            int ANIDLength = 32;
            int ANIDOffset = 2;

            string result = string.Empty;
            object anid;
            if (UserExtendedProperties.TryGetValue("ANID", out anid))
            {
                if (anid != null && anid.ToString().Length >= (ANIDLength + ANIDOffset))
                {
                    result = anid.ToString().Substring(ANIDOffset, ANIDLength);
                }
            }

            return result;
        }

Кажется, он не очень хорошо справляется с TryGetValue... Кто-то понял?

3 ответа

Решение

Это называется ANID2 в Windows Phone 8.

API UserExtendedProperties предоставляет два свойства: ANID и ANID2.

  • Доступ к ANID возможен только из приложений Windows Phone OS 7.0 и Windows Phone OS 7.1, которые используют Microsoft Advertising SDK для Windows Phone.

  • Доступ к ANID2 возможен только из приложений Windows Phone 8.

Используйте вместо этого для приложений Win Phone 8

string anid = UserExtendedProperties.GetValue("ANID2") as string;

Также убедитесь, что они проверены из WMAppManifest

<Capability Name="ID_CAP_IDENTITY_DEVICE" />
<Capability Name="ID_CAP_IDENTITY_USER" />

Кажется, я помню, вы больше не можете запрашивать ANID на устройствах Windows Phone 8 по соображениям безопасности. Точно так же вы больше не можете запрашивать MAC-адрес на устройствах W8. Храните Guid.NewGuid() локально и идентифицируйте этот путь.

Другие вопросы по тегам