incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse MacFadyen (JIRA)" <>
Subject [jira] [Commented] (CB-1702) device.uuid should use HardwareIdentification.GetPackageSpecificToken, not utils.createUUID
Date Wed, 24 Oct 2012 10:14:11 GMT


Jesse MacFadyen commented on CB-1702:

We have to be careful because the packageSpecificToken may be affected by hardware changes,
including docking/undocking, adding removing usb devices, ...

Generating our own id and storing it in a persistent location is probably 'good enough' as
there is no need to identify an app/device beyond an un-install.
The uuid should however survive an application update.

My advice is to move the uuid from localStorage which can be wiped simply by calling localStorage.clear()
to a known file on the filesystem.
on load, synchronously check if the file 'appDeviceIdentifier.txt' exists
if so, read it's string uuid value and use it,
otherwise, generate a uuid, and write it to the file 'appDeviceIdentifier.txt'

> device.uuid should use HardwareIdentification.GetPackageSpecificToken, not utils.createUUID
> -------------------------------------------------------------------------------------------
>                 Key: CB-1702
>                 URL:
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Windows 8
>            Reporter: Matt Baxter-Reynolds
>            Assignee: Jesse MacFadyen
> The current implementation creates a device ID and puts it in localStorage:
>         // deviceId aka uuid
>         var deviceId = localStorage.deviceId;
>         if(!deviceId) {
>             deviceId = utils.createUUID();
>             console.log(deviceId);
>             localStorage.deviceId = deviceId;
>         }
> This should more properly use WinRT's HardwareIdentification class, e.g.
> private string GetHardwareId()
> {
> var token = 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);
> }
> (I appreciate that's C# - I've cribbed it from another project, but this should work
in WinJS.)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message