¿Cómo obtener una identificación única de hardware del dispositivo en Android?

¿Cómo obtener la ID de dispositivo única en Android que no se puede cambiar al realizar un restablecimiento de teléfono o la actualización del sistema operativo?

Verifique este blog en el siguiente enlace

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); 

Lo anterior es del enlace @ ¿Existe una ID de dispositivo Android única?

Más específicamente, Settings.Secure.ANDROID_ID. Esta es una cantidad de 64 bits que se genera y almacena cuando el dispositivo se inicia por primera vez. Se restablece cuando se limpia el dispositivo .

ANDROID_ID parece una buena opción para un identificador de dispositivo único . Hay desventajas: en primer lugar, no es 100% confiable en las versiones de Android anteriores a 2.2 (“Froyo”). Además, ha habido al menos un error ampliamente observado en un teléfono popular de un fabricante importante, donde cada instancia tiene el mismo ANDROID_ID.

La siguiente solución no es buena porque el valor sobrevive a los borrados del dispositivo (“restablecimiento de fábrica”) y, por lo tanto, podría terminar cometiendo un desagradable error cuando uno de sus clientes limpie su dispositivo y se lo pase a otra persona .

Obtienes el número IMEI del dispositivo usando el siguiente

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

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

Agregar esto es manifiesto

  

Utilizo el siguiente código para obtener la ID de Android.

 String android_id = Secure.getString(this.getContentResolver(), Secure.ANDROID_ID); Log.d("Android","Android ID : "+android_id); 

enter image description here

Lea esta entrada oficial en el blog del desarrollador de Google: http://android-developers.blogspot.be/2011/03/identifying-app-installations.html

Conclusión Para la gran mayoría de las aplicaciones, el requisito es identificar una instalación particular, no un dispositivo físico. Afortunadamente, hacerlo es sencillo.

Hay muchas buenas razones para evitar el bash de identificar un dispositivo en particular. Para aquellos que quieran probar, el mejor enfoque es probablemente el uso de ANDROID_ID en cualquier cosa razonablemente moderna, con algunas heurísticas de respaldo para dispositivos heredados

.

Podemos obtener fácilmente la identificación del dispositivo usando String id = android.os.Build.ID;