Diferencia entre la identificación de Android y la identificación del dispositivo

¿Cuál es la diferencia entre la identificación de Android y la identificación del dispositivo?

Así es como los obtengo:

Identificación de Android:

String androidID = Settings.Secure.getString(MainActivity.this.getContentResolver(),
            Settings.Secure.ANDROID_ID);

Identificación del dispositivo:

String deviceID = ((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE))
                    .getDeviceId()

Necesito identificar de forma única mi dispositivo Android. El uso deviceIDnecesita el permiso para "hacer y administrar llamadas telefónicas". Mientras que el uso androidIDno lo hace. Por lo tanto, me voy androidIDporque no necesito ningún privilegio de gestión de llamadas.

  1. ¿Cuál es la diferencia exacta entre los dos? Si no hay ninguno, ¿por qué hay dos identificaciones?

  2. ¿Se restablecerán ambas identificaciones si restablezco mi dispositivo de fábrica?

  3. Sé que deviceIDfunciona para todas las versiones de Android. ¿ androidIDFuncionará para todas las versiones?

Respuestas (1)

Si bien su pregunta se enfoca en un problema de desarrollo (que está fuera de tema aquí), la respuesta también es relevante para los usuarios, por lo que la responderé:

  • DeviceID: Este es el número de serie del dispositivo, que debe persistir incluso un restablecimiento de fábrica.
  • ID de Android: se configurará en el primer arranque (ya sea con un dispositivo nuevo o después de un restablecimiento de fábrica). Como implicado, no sobrevive a un
  • Hay un segundo " Android_ID " que es generado y utilizado por Google Services Framework (GSF) y, por lo tanto, a menudo se lo denomina " ID de GSF ". Se comporta básicamente como el ID de Android mencionado anteriormente (por ejemplo, no sobrevive a un ) y coexiste con él.
  • Además, está el GAID ( ID de publicidad de Google ), que el usuario puede restablecer a través de la aplicación Configuración de Google .

Durante el "funcionamiento normal" (es decir, siempre que no restablezca su dispositivo de fábrica ni restablezca el GAID), todos estos ID se pueden usar para identificar el dispositivo. Cuando se utilizan varios usuarios (a través de perfiles de usuario) en un dispositivo, todos, excepto DeviceID, incluso identificarían al usuario (perfil).

Que yo sepa, todas esas identificaciones están disponibles en todas las versiones de Android (al menos en aquellas que son relevantes actualmente, es decir, GB/2.3 y más). Los dos últimos, obviamente, solo si GApps está instalado, por lo que en los dispositivos que ejecutan una ROM personalizada sin GApps, es posible que no existan.