2015-08-21 13 views
6

Tôi muốn Id thiết bị độc đáo cho dịch vụ back_end (ws) cho rằng tôi tìm thấy tài liệu tham khảo sauTôi làm cách nào để có được Id duy nhất trên thiết bị cho windows phone 8.1?

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. 

nhưng, tôi không thể hiểu được mã, mỗi khi tôi nhận được cùng một Id cho thiết bị của tôi (64 chuỗi ký tự) , Tôi muốn biết rằng nó có thể áp dụng hay không? tôi không thể tìm thấy bất kỳ tài liệu tham khảo từ MSDN cũng

Cảm ơn bạn

Trả lời

2

này có thể giúp:

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

Đối với các tài liệu, có một cái nhìn tại GetPackageSpecificToken phương thức trong lớp HardwareIdentification.

+0

Thay vì mã cứng * "MD5" *, bạn có thể sử dụng 'HashAlgorithmNames.Md5' –

+0

@KristianVukusic Cảm ơn bạn. Tôi đã cập nhật câu trả lời của mình. –

+0

PackageSpecificToken này được thay đổi khi bạn thay đổi cấu hình phần cứng (rút phích cắm BT hoặc một cái gì đó khác). Tôi không dựa vào nó. Có thể chỉ cho mục đích quảng cáo. – Tertium

Các vấn đề liên quan