You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Stephen J Fuhry (JIRA)" <ji...@apache.org> on 2012/07/12 19:04:33 UTC
[jira] [Updated] (CB-1047) Android UUID can sometimes be undefined
(or otherwise not unique) because of limitations in ANDROID_ID
[ https://issues.apache.org/jira/browse/CB-1047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stephen J Fuhry updated CB-1047:
--------------------------------
Description:
There are many documented situations where the following does not really return a unique identifier ([link to cordova source|https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=blob;f=framework/src/org/apache/cordova/Device.java#l173]):
{code:java}
android.provider.Settings.Secure.ANDROID_ID
{code}
Would it make sense to implement a solution like this?
http://android-developers.blogspot.com/2011/03/identifying-app-installations.html
see also: http://stackoverflow.com/a/2853253/111033
I've used the above mentioned solution in native Android applications without issue.
It *might* make sense to offer this as a value completely separate from device.uuid.. there are many reports that some hardware vendors are actually populating ANDROID_ID with a manufacturer ID (i.e. ANDROID_ID returns a value, but it is not unique between devices of the same make / model! How deceptive.).
Perhaps it could be offered as:
{code:javascript}
device.install_id
{code}
or something so that developers could opt-in to use it? This way it wouldn't break BC for those who are interested in maintaining device or install ids from previous versions. Then, you could get a guaranteed unique id by doing:
{code:javascript}
var deviceId = ('install_id' in device ? device.uuid : device.install_id);
{code}
was:
There are many documented situations where the following does not really return a unique identifier ([link to cordova source|https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=blob;f=framework/src/org/apache/cordova/Device.java#l173]):
{code:java}
android.provider.Settings.Secure.ANDROID_ID
{code}
Would it make sense to implement a solution like this?
http://android-developers.blogspot.com/2011/03/identifying-app-installations.html
see also: http://stackoverflow.com/a/2853253/111033
I've used the above mentioned solution in native Android applications without issue.
It *might* make sense to offer this as a value completely separate from device.uuid.. there are many reports that some hardware vendors are actually populating ANDROID_ID with a manufacturer ID (i.e. ANDROID_ID returns a value, but it is not unique between devices of the same make / model! How deceptive.).
Perhaps it could be offered as:
{code:javascript}
device.install_id
{code}
or something so that developers could opt-in to use it? This way it wouldn't break BC for those who are interested in maintaining device or install ids from previous versions. Then, you could get a guaranteed unique id by doing:
{code:javascript}
var deviceId = (device.install_id === null ? device.uuid : device.install_id);
{code}
> Android UUID can sometimes be undefined (or otherwise not unique) because of limitations in ANDROID_ID
> ------------------------------------------------------------------------------------------------------
>
> Key: CB-1047
> URL: https://issues.apache.org/jira/browse/CB-1047
> Project: Apache Cordova
> Issue Type: Wish
> Components: Android
> Affects Versions: 1.9.0
> Reporter: Stephen J Fuhry
> Assignee: Joe Bowser
>
> There are many documented situations where the following does not really return a unique identifier ([link to cordova source|https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=blob;f=framework/src/org/apache/cordova/Device.java#l173]):
> {code:java}
> android.provider.Settings.Secure.ANDROID_ID
> {code}
> Would it make sense to implement a solution like this?
> http://android-developers.blogspot.com/2011/03/identifying-app-installations.html
> see also: http://stackoverflow.com/a/2853253/111033
> I've used the above mentioned solution in native Android applications without issue.
> It *might* make sense to offer this as a value completely separate from device.uuid.. there are many reports that some hardware vendors are actually populating ANDROID_ID with a manufacturer ID (i.e. ANDROID_ID returns a value, but it is not unique between devices of the same make / model! How deceptive.).
> Perhaps it could be offered as:
> {code:javascript}
> device.install_id
> {code}
> or something so that developers could opt-in to use it? This way it wouldn't break BC for those who are interested in maintaining device or install ids from previous versions. Then, you could get a guaranteed unique id by doing:
> {code:javascript}
> var deviceId = ('install_id' in device ? device.uuid : device.install_id);
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira