Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Create Pseudo Unique ID for Android Device
/**
* Return pseudo unique ID
* @return ID
*/
public static String getPsuedoUniqueID()
{
// If all else fails, if the user does have lower than API 9 (lower
// than Gingerbread), has reset their phone or 'Secure.ANDROID_ID'
// returns 'null', then simply the ID returned will be solely based
// off their Android device information. This is where the collisions
// can happen.
// Thanks http://www.pocketmagic.net/?p=1662!
// Try not to use DISPLAY, HOST or ID - these items could change.
// If there are collisions, there will be overlapping data
String m_szDevIDShort = "35" +
(Build.BOARD.length() % 10)
+ (Build.BRAND.length() % 10)
+ (Build.CPU_ABI.length() % 10)
+ (Build.DEVICE.length() % 10)
+ (Build.MANUFACTURER.length() % 10)
+ (Build.MODEL.length() % 10)
+ (Build.PRODUCT.length() % 10);
// Thanks to @Roman SL!
// http://stackoverflow.com/a/4789483/950427
// Only devices with API >= 9 have android.os.Build.SERIAL
// http://developer.android.com/reference/android/os/Build.html#SERIAL
// If a user upgrades software or roots their phone, there will be a duplicate entry
String serial = null;
try
{
serial = android.os.Build.class.getField("SERIAL").get(null).toString();
// Go ahead and return the serial for api => 9
return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
}
catch (Exception e)
{
// String needs to be initialized
serial = "serial"; // some value
}
// Thanks @Joe!
// http://stackoverflow.com/a/2853253/950427
// Finally, combine the values we have found by using the UUID class to create a unique identifier
return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
}
@Zennaxxtech

This comment has been minimized.

Copy link

@Zennaxxtech Zennaxxtech commented Apr 11, 2019

Hello, Actually i am using this code for Unique ID. Its working fine and very well last 6 months. Now just before some time(days) client told us that UUID is generated but that generated UUID is already exist in your database. It means it conflict with another device UUID. So i just want to know that is it possible that this kind of issue may be happen sometime or its never happens in any cases?

@salmonzhg

This comment has been minimized.

Copy link

@salmonzhg salmonzhg commented Jun 21, 2019

Hello, Actually i am using this code for Unique ID. Its working fine and very well last 6 months. Now just before some time(days) client told us that UUID is generated but that generated UUID is already exist in your database. It means it conflict with another device UUID. So i just want to know that is it possible that this kind of issue may be happen sometime or its never happens in any cases?

Please read the article mentioned above http://www.pocketmagic.net/?p=1662.Although the probability is small, it may still occur.

@salmonzhg

This comment has been minimized.

Copy link

@salmonzhg salmonzhg commented Jun 21, 2019

Hello, Actually i am using this code for Unique ID. Its working fine and very well last 6 months. Now just before some time(days) client told us that UUID is generated but that generated UUID is already exist in your database. It means it conflict with another device UUID. So i just want to know that is it possible that this kind of issue may be happen sometime or its never happens in any cases?

Therefore, it is called get ‘pseudo’ id.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment