2012-12-20 17 views
9

Ho aggiunto al WMAppManifest.xml:Non riesco a ottenere il mio ANID?

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

Così Perché continuo a ottenere stringhe vuote da:

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

Non sembra per gestire che TryGetValue molto bene ... Qualcuno ha un indizio?

+0

Sei sicuro che il problema deriva dal 'TryGetValue'? Potrebbe essere il prossimo 'se' pure. Hai provato a impostare un breakpoint per capire quale linea non funziona? –

+2

@KooKiz TryGetValue restituisce false e l'oggetto anid è nullo: -/ – Jason94

risposta

15

It's called ANID2 in Windows Phone 8.

L'API UserExtendedProperties espone due proprietà: ANID e ANID2.

  • ANID può solo accedere da Windows Phone OS 7.0 e Windows Phone OS 7.1 le applicazioni che utilizzano il Microsoft Advertising SDK per Windows Phone.

  • ANID2 può solo accessibile dalle app di Windows Phone 8.

+1

Anche ANID2 non funziona per me su WP8. –

+0

Posso confermare questo comportamento: ANID2 restituisce null, quando provo a recuperarlo. Avrei pensato che questo ID anonimo appartenesse all'account Windows Live sul dispositivo utilizzato per accedere e acquistare app nello store. Oppure questo ID anonimo è un ID che può essere recuperato solo se l'app è stata firmata e inviata allo Store? –

+0

@MarkusRudel, trovato queste informazioni in [thread MSDN] (http://social.msdn.microsoft.com/forums/windowsapps/en-US/7e265aed-1719-4158-bc98-5d985e694c4c/userextendedproperties-anid-anid2- changes-in-wp8? prof = required): 'La differenza maggiore (tra ANID e ANID2 su WP7 vs WP8) è probabilmente che ANID2 è univoco per ciascun editore. [...] Per i progetti Windows Phone 8 è possibile impostare PublisherID nel file WMAppManifest.xml. Puoi trovare il tuo PublisherID (Publisher GUID) nella pagina Riepilogo account di Dev Center Dashboard. Il PublisherID per un'applicazione viene impostato quando inviato a Dev Center [...] ' –

0

Mi sembra di ricordare non è più possibile richiedere l'ANID su windows phone 8 dispositivi come per ragioni di sicurezza. Allo stesso modo non puoi più richiedere l'indirizzo MAC sui dispositivi W8. Conservare Guid.NewGuid() in locale e identificarlo in questo modo.

1

uso, invece, per Win Phone 8 applicazioni

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

anche assicurarsi che tali vengono controllati dal WMAppManifest

<Capability Name="ID_CAP_IDENTITY_DEVICE" /> 
<Capability Name="ID_CAP_IDENTITY_USER" /> 
Problemi correlati