Jednoznačná identifikácia zariadenia vo Windows 8
·
Igor Kulman
Pri vývoji aplikácie pre Windows 8 môžete naraziť na potrebu jednoznačne identifikovať zariadenie, na ktorom aplikácia beží. Dôvodom môžu byť napríklad in-app purchases.
V namespace Windows.System.Profile sa nachádza HardwareToken, ktorú získate zavolaním HardwareIdentification.GetPackageSpecificToken(null)
var packageSpecificToken = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
Táto trieda má viacero zaujímavých položiek
var hardwareId = packageSpecificToken.Id;
var signature = packageSpecificToken.Signature;
var certificate = packageSpecificToken.Certificate;
Všetky tieto položky sú typu Windows.Storage.Stream.Ibuffer, teda volania do COMu. Na získanie hodnôt, ktoré je možné použiť v .NETe je potrebné použiť DataReader, ja získavam identifikátor zariadenia z hardwareId
var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId);
var array = new byte[hardwareId.Length];
dataReader.ReadBytes(array);
Výsledné pole bajtov je možné previesť na UTF8 string
string uuid = System.Text.Encoding.UTF8.GetString(array, 0, array.Length);
Ja však radšej používam zreťazenie bajtov do stringu
var sb = new StringBuilder();
for (var i = 0; i < array.Length; i++)
{
sb.Append(array[i].ToString());
}
string uuid = sb.ToString();
Ako jednoznačne zistiť identitu používateľa sa mi zatiaľ nepodarilo.