2014-12-22 6 views
2

Windows Phone에서 장치 ID를 가져 오려고합니다. 8.1.Windows Phone 8.1 : 장치 고유 ID에 대한 DeviceExtendedProperties 또는 DeviceStatus

DeviceExtendedProperties 또는 DeviceStatus은 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

좋아,하지만 정말 독특하고 각 장치마다 항상 고유 할 것이라고 생각할 수 있습니까? –