我已添加到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 ......有人知道了吗?
答案 0 :(得分:15)
It's called ANID2 in Windows Phone 8.
UserExtendedProperties API公开两个属性:ANID和ANID2。
ANID只能 从Windows Phone OS 7.0和使用Microsoft Advertising SDK for Windows Phone的Windows Phone OS 7.1应用程序访问
ANID2只能 从Windows Phone 8应用程序访问
答案 1 :(得分:1)
代替 Win Phone 8 应用
string anid = UserExtendedProperties.GetValue("ANID2") as string;
同时确保从 WMAppManifest
中检查这些内容<Capability Name="ID_CAP_IDENTITY_DEVICE" />
<Capability Name="ID_CAP_IDENTITY_USER" />
答案 2 :(得分:0)
我似乎记得,出于安全原因,您无法再在Windows Phone 8设备上请求ANID。同样,你不能再在W8设备上请求MAC地址了。在本地存储Guid.NewGuid()并识别出这种方式。