119 votes

Comment obtenir un identifiant matériel unique pour un appareil sous Android ?

Comment obtenir l'identifiant unique de l'appareil sous Android, qui ne peut être modifié lors d'une réinitialisation du téléphone ou d'une mise à jour du système d'exploitation ?

177voto

Raghunandan Points 63969

Mise à jour : 19 -11-2019

La réponse ci-dessous n'est pas plus pertinente à l'heure actuelle.

Si vous cherchez des réponses, vous devriez consulter la documentation dont le lien figure ci-dessous.

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


Ancienne réponse - Non pertinent maintenant. Vous pouvez consulter ce blog dans le lien ci-dessous

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

Ce qui précède est tiré du lien @ Existe-t-il un identifiant unique pour les appareils Android ?

Plus précisément, Settings.Secure.ANDROID_ID. Il s'agit d'une quantité de 64 bits qui est générée et stockée lors du premier démarrage de l'appareil. Il est réinitialisé lorsque le dispositif est effacé. .

ANDROID_ID semble être un bon choix pour un identifiant unique de l'appareil. . Il y a des inconvénients : Tout d'abord, il n'est pas fiable à 100% sur les versions d'Android antérieures à 2.2 ("Froyo"). En outre, il y a eu au moins un bogue largement observé dans un téléphone populaire d'un grand fabricant, où chaque instance a le même ANDROID_ID.

La solution ci-dessous n'est pas bonne parce que la valeur survit aux effacements de l'appareil ("réinitialisations d'usine") et vous pourriez donc commettre une grave erreur lorsqu'un de vos clients efface son appareil et le transmet à une autre personne. .

Vous obtenez le numéro imei de l'appareil en utilisant la procédure suivante

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

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

Ajouter ce manifeste

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

30voto

Chintan Rathod Points 7938

J'utilise le code suivant pour obtenir l'identifiant Android.

String android_id = Secure.getString(this.getContentResolver(),
            Secure.ANDROID_ID);

Log.d("Android","Android ID : "+android_id);

enter image description here

5voto

Waza_Be Points 14584

Veuillez lire cet article officiel sur le blog des développeurs de Google : http://Android-developers.blogspot.be/2011/03/identifying-app-installations.html

Conclusion Pour la grande majorité des applications, l'exigence est la suivante d'identifier une installation particulière, et non un dispositif physique. Heureusement, cela est très facile à faire.

Il existe de nombreuses bonnes raisons d'éviter de tenter d'identifier une dispositif particulier. Pour ceux qui veulent essayer, la meilleure approche est probablement est probablement l'utilisation de ANDROID_ID sur tout ce qui est raisonnablement moderne, avec quelques heuristiques de repli pour les appareils anciens

.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X