因此,有關於獲取Windows 8設備的唯一標識符的各種帖子,如this one。但是,也認識到當各種系統組件改變時標識符會改變。 From the docs:爲Windows 8獲取穩定的唯一設備ID
硬件漂移是應用程序不應該按原樣使用ASHWID字節流的原因。如果少數硬件組件發生更改或關閉,則API會返回一個不同的ASHWID。該應用程序有可能會錯誤地將相同設備標識爲新的設備。以下是可能會導致硬件漂移一些可能出現的情況:
- 在接近一天結束的時候,用戶想要做最後直到她回家的電池,讓她關閉藍牙和Wi-Fi,同時保持3G/4G用於與雲連接。
- 用戶插入USB 3G數據卡。
- 底層OS/System on Chip電源管理可能會關閉某些內核。
這是一個很糟糕的事態。文檔建議查看ASHWID(特定於應用程序的硬件ID)並加權各種組件,這些組件不太可能改變和忽略(賦予權重0)可變的事物,如是否存在碼頭。但是,我沒有看到關於如何識別組件的任何文檔。我的標識符只是一個數字列表。
有沒有更好的方式來獲得一個穩定的唯一設備ID(如果它是封裝特定的,只要每個設備/軟件包組合都是唯一的就可以)? 或者,有人可以指示我有關如何識別由HardwareIdentification.GetPackageSpecificToken
生成的令牌中的組件的文檔嗎?
UPDATE:
摸索出的組件的一部分。但仍然對獲得穩定身份證的更好方法感興趣。
字節流由四個字節的多個組組成。前兩個字節包含組件的類型,接下來的兩個字節包含該值。使用下表來識別每個組件的類型:
本文給出了一個基於代碼的解決方案來檢查硬件轉移https://code.msdn.microsoft.com/windowsapps/How-to-use-ASHWID-to-3742c83e –