Perfect unique_id for device except IMEI,Android_ID,WLAN Mac and Bluetooth address Perfect unique_id for device except IMEI,Android_ID,WLAN Mac and Bluetooth address android android

Perfect unique_id for device except IMEI,Android_ID,WLAN Mac and Bluetooth address


I have chosen to use Android_ID since It's not dependent on any hardware.

Build.SERIAL also dependent on availability of telephony that is in wifi only devices this Build.SERIAL won't work.

I have explained how other approaches are dependent upon the hardware availability in the question itself.


There is no such ID available on Android. You can generate your own, for example a random UUID and connect it to the user's account. This is what Kindle, Audible and other applications do to identify devices in a non-privacy-intrusive way.

Consider Google Analytics Mobile if you want to "track your users", http://www.google.com/analytics/mobile/

If you want to get closer to tracking a device you can combine the IDs above together in a hash-function. Bluetooth + wifi + android serial, and if any of them are null, you put a 0 in the hash, e.g. if there is no wifi mac addr. As you point out, you aren't guaranteed the id won't change. Unless the user is running a custom ROM, I would expect this computed ID to stay constant, though.


I think, you could use device serial ID (hardware serial number, not android id). You could seen it in device settings. In your code, you could get it by Build.SERIAL.