9

我已添加到 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 ......有人有线索吗?

4

3 回答 3

15

它在 Windows Phone 8 中称为 ANID2。

UserExtendedProperties API 公开了两个属性:ANID 和 ANID2。

  • ANID只能从使用 Microsoft Advertising SDK for Windows Phone 的 Windows Phone OS 7.0 和 Windows Phone OS 7.1 应用程序访问。

  • ANID2只能从 Windows Phone 8 应用程序访问。

于 2012-12-20T14:24:17.847 回答
1

用于Win Phone 8应用程序

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

还要确保从WMAppManifest检查这些

<Capability Name="ID_CAP_IDENTITY_DEVICE" />
<Capability Name="ID_CAP_IDENTITY_USER" />
于 2014-05-14T19:49:51.237 回答
0

我似乎记得,出于安全原因,您不能再在 windows phone 8 设备上请求 ANID。同样的方式你不能再在 W8 设备上请求 MAC 地址了。在本地存储 Guid.NewGuid() 并以这种方式识别。

于 2012-12-20T14:27:17.330 回答