Friday, 2 December 2016

How to get unique device hardware id in Android?




How to get the unique device ID in Android which cannot be changed when performing a phone reset or OS update?


Answer




Update: 19 -11-2019



The below answer is no more relevant to present day.



So for any one looking for answers you should look at the documentation linked below



https://developer.android.com/training/articles/user-data-ids







Old Answer - Not relevant now.
You check this blog in the link below



http://android-developers.blogspot.in/2011/03/identifying-app-installations.html



ANDROID_ID



import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(),

Secure.ANDROID_ID);


The above is from the link @ Is there a unique Android device ID?



More specifically, Settings.Secure.ANDROID_ID. This is a 64-bit quantity that is generated and stored when the device first boots. It is reset when the device is wiped.



ANDROID_ID seems a good choice for a unique device identifier. There are downsides: First, it is not 100% reliable on releases of Android prior to 2.2 (“Froyo”). Also, there has been at least one widely-observed bug in a popular handset from a major manufacturer, where every instance has the same ANDROID_ID.



The below solution is not a good one coz the value survives device wipes (“Factory resets”) and thus you could end up making a nasty mistake when one of your customers wipes their device and passes it on to another person.




You get the imei number of the device using the below



  TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();


http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29



Add this is manifest






No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...