2012-12-20 28 views
9

tôi đã thêm vào WMAppManifest.xml:Tôi không thể nhận được ANID của mình?

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

Vậy tại sao tôi tiếp tục nhận chuỗi rỗng từ:

 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; 
     } 

Nó dường như không để xử lý rằng TryGetValue rất tốt ... Ai đó có một đầu mối?

+0

Bạn có chắc chắn vấn đề xuất phát từ 'TryGetValue'? Nó cũng có thể là 'if' tiếp theo. Bạn đã thử đặt một điểm dừng để hiểu dòng nào không hoạt động? –

+2

@KooKiz TryGetValue trả về đối tượng false và anid là null: -/ – Jason94

Trả lời

15

It's called ANID2 in Windows Phone 8.

Các UserExtendedProperties API cho thấy hai thuộc tính: ANID và ANID2.

  • ANID thể chỉ được truy cập từ Windows Phone OS 7.0 và Windows Phone OS 7.1 ứng dụng sử dụng Microsoft quảng cáo SDK cho Windows Phone.

  • ANID2 có thể chỉ truy cập từ các ứng dụng Windows Phone 8.

+1

Ngay cả ANID2 cũng không hoạt động đối với tôi trên WP8. –

+0

Tôi có thể xác nhận hành vi này: ANID2 trả về giá trị rỗng, khi tôi cố truy xuất nó. Tôi đã nghĩ rằng ID ẩn danh này thuộc về tài khoản Windows Live trên thiết bị được sử dụng để truy cập và mua ứng dụng trong cửa hàng. Hoặc ID ẩn danh này có phải là ID chỉ có thể được truy lục nếu ứng dụng được ký và gửi đến Cửa hàng không? –

+0

@MarkusRudel, tìm thấy thông tin này trong [chuỗi MSDN] (http://social.msdn.microsoft.com/forums/windowsapps/en-US/7e265aed-1719-4158-bc98-5d985e694c4c/userextendedproperties-anid-anid2- changes-in-wp8? prof = required): 'Sự khác biệt lớn nhất (giữa ANID và ANID2 trên WP7 so với WP8) có lẽ là ANID2 là duy nhất cho mỗi nhà xuất bản. [...] Đối với các dự án Windows Phone 8, bạn có thể đặt PublisherID trong tệp WMAppManifest.xml. Bạn có thể tìm thấy PublisherID của mình (Publisher GUID) trong trang Tóm lược tài khoản của bạn trong Trang tổng quan của Trung tâm dành cho nhà phát triển. PublisherID cho một ứng dụng được đặt khi được gửi tới Dev Center [...] ' –

0

tôi dường như nhớ đến bạn không còn có thể yêu cầu ANID trên windows phone 8 thiết bị theo lý do an ninh. Cùng một cách bạn không thể yêu cầu địa chỉ MAC trên các thiết bị W8 nữa. Lưu trữ Guid.NewGuid() tại địa phương và xác định theo cách đó.

1

sử dụng thay thế cho Win Phone 8 ứng dụng

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

Ngoài ra hãy chắc chắn rằng những người được kiểm tra từ WMAppManifest

<Capability Name="ID_CAP_IDENTITY_DEVICE" /> 
<Capability Name="ID_CAP_IDENTITY_USER" /> 
Các vấn đề liên quan