2015-08-21 13 views
6

Ich möchte eigene Geräte-ID für back_end Service (ws) für die ich folgende ReferenzWie kann ich Gerät eindeutige ID für Windows Phone 8.1 bekommen?

private string GetDeviceId() 
    { 
     var token = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null); 
     var hardwareId = token.Id; 
     var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId); 

     byte[] bytes = new byte[hardwareId.Length]; 
     dataReader.ReadBytes(bytes); 

     return BitConverter.ToString(bytes).Replace("-", ""); 
    }//Note: This function may throw an exception. 

aber fand ich den Code nicht verstehen, jedes Mal wenn ich gleiche Id bekommen für mein Gerät (64 Zeichenkette) Möchte ich wissen, dass es anwendbar ist oder nicht? Ich konnte keine Referenz von MSDN auch

Danke

Antwort

2

Dies kann helfen:

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

    HashAlgorithmProvider hasher = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5); 
    IBuffer hashed = hasher.HashData(hardwareId); 

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

Für die Dokumentation, haben einen Blick auf die GetPackageSpecificToken Methode in der HardwareIdentification Klasse.

+0

Anstelle der hardcoded * "MD5" * können Sie 'HashAlgorithmNames.Md5' verwenden –

+0

@KristianVukusic Vielen Dank. Ich habe meine Antwort aktualisiert. –

+0

Dieses PackageSpecificToken wird geändert, sobald Sie das Hardwareprofil ändern (BT oder etwas anderes entfernen). Ich würde mich nicht darauf verlassen. Vielleicht nur für Werbezwecke. – Tertium