Я не могу получить свой 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() локально и идентифицируйте этот путь.