2014-12-22 41 views
2

我想獲取Windows Phone中的設備ID 8.1Windows Phone 8.1:設備唯一ID的DeviceExtendedProperties或DeviceStatus

DeviceExtendedPropertiesDeviceStatus在WP8.1中沒有(沒有Microsoft.Phone.Info命名空間)。我剛剛找到EasClientDeviceInformation類,我無法從中得到Id。有一個在Id屬性異常:

enter image description here

等性能are't獨特。

這裏有另一種解決辦法,但我不知道這是否是安全的或可靠的使用方法:(?)
https://stackoverflow.com/a/23537207/3682369

回答

5

是的,你可以使用GetPackageSpecificToken()。我已經看過它,並沒有找到任何其他方式。雖然MSDN表示Id屬性包含一些硬件信息,但它對於任何設備(甚至是相同型號)都是唯一的值。所以你可以用它來識別用戶的設備。

這就是我在應用程序中使用它的方式。隨意使用我的代碼:

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("-", ""); 
} 
+0

很好的答案,它的作品完美。但是返回的ID與IMEI不同。你知道這個ID和IMEI有什麼區別嗎? –

+0

@AhmedKarim這很可能是一個哈希的IMEI,但沒有人確切知道。 –

+0

好的,但它真的是獨一無二的,我可以認爲它對每個設備都是唯一的嗎? –