Android.provider.Settings.Secure.ANDROID_ID devuelve "android_id"

¿Hay razón android.provider.Settings.Secure.ANDROID_ID es devolver la constante "android_id" en lugar de un número de 64 bits como una cadena hexadecimal?

Descripción: android.provider.Settings.Secure.ANDROID_ID

  • Un número de 64 bits (como una cadena hexadecimal) que se genera aleatoriamente cuando el usuario configura el dispositivo por primera vez y debe permanecer constante durante toda la vida del dispositivo del usuario. El valor puede cambiar si se realiza un restablecimiento de fábrica en el dispositivo.

Estoy usando un Samsung Galaxy S4 w /

<uses-sdk android:minSdkVersion="13" android:targetSdkVersion="19" /> 

Aclamaciones

El android.provider.Settings.Secure.ANDROID_ID es una constante que se puede utilizar en android.provider.Settings.Secure.getString(ContentResolver resolver, String name) . De forma predeterminada, se establece en "android_id", ya que es el nombre de la propiedad que contiene el ID de Android actual.

Utilice este código para obtener el ID real:

 String androidId = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID); 

Esto es sólo para elaborar la respuesta de @ Mike Laren, que es correcto. Pero hay un par de trampas a tener en cuenta, como se documenta en el siguiente código, que es lo que estoy utilizando actualmente:

  // Get the unique (supposedly) ID for this Android device/user combination long androidId = convertHexToLong(Settings.Secure.getString( _applicationContext.getContentResolver(), Settings.Secure.ANDROID_ID)); 

….

  // Method to convert a 16-character hex string into a Java long. This only took me about an hour, // due to a known bug in Java that it took them 13 years to fix, and still isn't fixed in the // version of Java used for Android development. // http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4215269 // http://stackoverflow.com/questions/1410168/how-to-parse-negative-long-in-hex-in-java // On top of that it turns out that on a HTC One the Settings.Secure.ANDROID_ID string may be 15 // digits instead of 16! private long convertHexToLong(String hexString) { hexString = "0000000000000000" + hexString; int i = hexString.length(); hexString = hexString.substring(i - 16, i); try { return Long.parseLong(hexString.substring(0, 8), 16) << 32 | Long.parseLong(hexString.substring(8, 16), 16); } catch (Exception e) { return 0L; } } 
  • Android: Personajes dejados atrás en EditText
  • ¿Cómo puedo crear un widget de aplicación de paginación de Android compatible con versiones anteriores?
  • Cómo enviar el archivo .apk dentro de la aplicación mediante Bluetooth
  • Convertir InputStream a JSONObject
  • Android: ¿Cómo capturar los extras de Intent si la actividad ya se está ejecutando?
  • Cómo conectar Android con MySQL usando el controlador Mysql JDBC
  • Convertir texto a mapa de bits (Pixel) en Android
  • Mejor biblioteca json rpc 2.0 para Android
  • Java System.nanoTime () enorme diferencia en el tiempo transcurrido
  • Imagen seleccionada de gallary no va a establecer en ImageView
  • Compartir fotos con Android con FileProvider
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.