2014-04-27 17 views
27

विंडोज फोन 8.1 में डिवाइस अद्वितीय आईडी कैसे प्राप्त करें? DeviceExtendedProperties.GetValue("DeviceUniqueId") का उपयोग करने का पुराना तरीका विंडोज यूनिवर्सल ऐप के लिए काम नहीं करता है।विंडोज फोन में डिवाइस अद्वितीय आईडी 8.1

+0

कोई उदाहरण? मैं यहां इस प्रश्न से भी पूछ रहा हूं: http://stackoverflow.com/questions/36004003/windows-phone-device-unique-id –

उत्तर

23

ध्यान दें कि जब आप यूनिवर्सल ऐप लिखते हैं, तो यह न केवल फोन पर स्थापित किया जा सकता है। फोन पर तकनीकी रूप से हार्डवेयर कॉन्फ़िगरेशन समान है, अन्य उपकरणों पर यह बदल सकता है और इसलिए इसकी आईडी। मुझे लगता है कि आईडी प्राप्त करने के लिए ऐसी कोई सार्वभौमिक विधि नहीं है। (अधिक जानकारी आप also here पा सकते हैं)।

HardwareToken myToken = HardwareIdentification.GetPackageSpecificToken(null); 
IBuffer hardwareId = myToken.Id; 

भी एक Guidance on using the App Specific Hardware ID (ASHWID) to implement per-device app logic है:

आप HardwareIdentification class पर एक नज़र और उसके विधि GetPackageSpecificToken हो सकता है।

+2

यदि आप इसका उपयोग करना चाहते हैं तो आपको याद रखना चाहिए कि यह आईडी बदल जाएगा ऐप साइनिंग सर्टिफिकेट – Johniak

+0

@ जॉनीकैक को पोनिट करने के लिए धन्यवाद। – Romasz

+0

@Romasz 'HardwareIdentification.GetPackageSpecificToken' पैकेज आईडी/नाम पर निर्भर है। क्या कोई अन्य आईडी है जो एक ही डिवाइस पर स्थापित सभी ऐप्स के लिए समान दिखाई देती है? –

31
private string GetDeviceID() 
{ 
    HardwareToken token = HardwareIdentification.GetPackageSpecificToken(null); 
    IBuffer hardwareId = token.Id; 

    HashAlgorithmProvider hasher = HashAlgorithmProvider.OpenAlgorithm("MD5"); 
    IBuffer hashed = hasher.HashData(hardwareId); 

    string hashedString = CryptographicBuffer.EncodeToHexString(hashed); 
    return hashedString; 
} 

इस सहायता की आशा करें!

+0

क्यों एमडी 5 हालांकि? क्यों कोई अन्य एल्गोरिदम नहीं ?? – Apoorva

+9

मैं "MD5" को [हैश एल्गोरिथ्मनाम.एमडी 5] (http://msdn.microsoft.com/en-us/library/windows.security.cryptography.core.hashalgorithmnames.md5.aspx) में बदल दूंगा। –

+0

आप CryptographicBuffer.EncodeToHexString को कनवर्ट करने के लिए प्रतिस्थापित कर सकते हैं। ToBase64String, यह कम लेकिन अभी भी पठनीय स्ट्रिंग का उत्पादन करेगा। – Grigory

संबंधित मुद्दे