我无法得到我的ANID?

时间:2012-12-20 13:04:00

标签: c# windows-phone windows-phone-8

我已添加到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 个答案:

答案 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()并识别出这种方式。