2012-12-20 6 views
9

मैं WMAppManifest.xml में शामिल किया है:मैं अपना एएनआईडी प्राप्त करने में सक्षम नहीं हूं?

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

यह संभाल करने के लिए प्रतीत नहीं होता:

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

तो मैं से रिक्त स्ट्रिंग हो रही क्यों रहते हो कि TryGetValue बहुत अच्छी तरह से ... किसी को एक सुराग मिला? ANID और ANID2:

+0

से जाँच कर रहे हैं क्या आपको यकीन है समस्या 'TryGetValue' से आता है? यह अगली 'अगर' भी हो सकती है। क्या आपने यह समझने के लिए ब्रेकपॉइंट सेट करने का प्रयास किया है कि कौन सी रेखा काम नहीं करती है? –

+2

@KooKiz TryGetValue झूठी वापसी करता है और एनीड ऑब्जेक्ट शून्य है: -/ – Jason94

उत्तर

15

It's called ANID2 in Windows Phone 8.

UserExtendedProperties एपीआई दो गुणों को उजागर करता है।

  • ANID कर सकते हैं केवल विंडोज फोन ओएस 7.0 और विंडोज फोन ओएस 7.1 कि विंडोज फोन के लिए माइक्रोसॉफ्ट विज्ञापन SDK का उपयोग क्षुधा से पहुँचा जा।

  • ANID2 केवल विंडोज फोन 8 ऐप्स से एक्सेस किया जा सकता है।

+1

यहां तक ​​कि ANID2 WP8 पर मेरे लिए काम नहीं करता है। –

+0

मैं इस व्यवहार की पुष्टि कर सकता हूं: जब मैं इसे पुनर्प्राप्त करने का प्रयास करता हूं तो एएनआईडी 2 शून्य वापस आ रहा है। मैंने सोचा होगा कि यह अनाम आईडी डिवाइस पर Windows Live खाते से संबंधित है जिसका उपयोग स्टोर में ऐप्स तक पहुंचने और खरीदने के लिए किया जाता है। या यह अनाम आईडी एक आईडी है जिसे ऐप पर हस्ताक्षर किए जाने और स्टोर में जमा करने पर ही पुनर्प्राप्त किया जा सकता है? –

+0

@ मार्कस रुडेल, इस जानकारी को एक [एमएसडीएन थ्रेड] में मिला (http://social.msdn.microsoft.com/forums/windowsapps/en-US/7e265aed-1719-4158-bc98-5d985e694c4c/userextendedproperties-anid-anid2- परिवर्तन-में-wp8? prof = आवश्यक): 'सबसे बड़ा अंतर (WP8 बनाम WP8 पर एएनआईडी और एएनआईडी 2 के बीच) शायद यह है कि ANID2 प्रत्येक प्रकाशक के लिए अद्वितीय है। [...] विंडोज फोन 8 परियोजनाओं के लिए आप WMAppManifest.xml फ़ाइल में प्रकाशक सेट कर सकते हैं। आप देव केंद्र डैशबोर्ड के अपने खाता सारांश पृष्ठ में अपना प्रकाशक (प्रकाशक GUID) पा सकते हैं। देव केंद्र में सबमिट किए जाने पर एप्लिकेशन के लिए प्रकाशक सेट किया गया है [...] ' –

0

मैं तुम्हें नहीं रह गया है विंडोज फोन सुरक्षा कारणों के अनुसार 8 उपकरणों पर ANID अनुरोध कर सकते हैं याद करने लगते हैं। वैसे ही आप W8 उपकरणों पर मैक एड्रेस का अनुरोध नहीं कर सकते हैं। Guid.NewGuid() को स्थानीय रूप से स्टोर करें और उस तरह की पहचान करें।

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

इसके अलावा यह सुनिश्चित करने के बजाय जीत Phone 8 क्षुधा

के लिए

1

उपयोग उन WMAppManifest

<Capability Name="ID_CAP_IDENTITY_DEVICE" /> 
<Capability Name="ID_CAP_IDENTITY_USER" /> 
संबंधित मुद्दे