Secure.ANDROID_ID est-il unique pour chaque périphérique?

J’utilise cet appel:

Secure.getSsortingng(getApplicationContext().getContentResolver(), Secure.ANDROID_ID); 

Pour obtenir un UID pour le périphérique. Je pense que je reçois le même identifiant de plusieurs appareils. Est-ce que cela devrait être possible?

L’ID en question est le suivant: 9774d56d682e549c et il semble qu’il y ait un problème avec plusieurs appareils renvoyant cet ID: http://code.google.com/p/android/issues/list?cursor=10603&updated=10603&ts=1295993403

Vérifiez dans ce fil,. Cependant, vous devriez faire attention car il est documenté comme “peut changer lors de la réinitialisation d’usine”. Utilisez à vos risques et périls, et il peut être facilement modifié sur un téléphone rooté. En outre, il semble que certains fabricants ont eu des problèmes avec leurs téléphones ayant un fil de numéros en double. Selon ce que vous essayez de faire, je ne l’utiliserais probablement pas comme un UID.

Avec Android, le comportement de ANDROID_ID changera. ANDROID_ID sera différent par application et par utilisateur sur le téléphone.

Tiré de: https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html

ID Android

Dans O, ID Android (Settings.Secure.ANDROID_ID ou SSAID) a une valeur différente pour chaque application et chaque utilisateur sur le périphérique. Les développeurs nécessitant un identifiant de périphérique doivent utiliser un identifiant réinitialisable, tel que l’ID de publicité, donnant aux utilisateurs davantage de contrôle. L’ID de publicité fournit également un paramètre orienté utilisateur pour limiter le suivi des annonces.

De plus dans Android O:

  • La valeur ANDROID_ID ne changera pas lors de la désinstallation / réinstallation du package, tant que le nom du package et la clé de signature sont identiques. Les applications peuvent s’appuyer sur cette valeur pour conserver l’état des réinstallations.
  • Si une application a été installée sur un périphérique exécutant une version antérieure d’Android, l’ID Android rest le même lorsque le périphérique est mis à jour vers Android O, sauf si l’application est désinstallée et réinstallée.
  • La valeur ID Android change uniquement si le périphérique est réinitialisé en usine ou si la clé de signature pivote entre désinstaller et
    réinstaller des événements.
  • Cette modification est uniquement requirejse pour les fabricants de périphériques livrant avec les services Google Play et l’ID de publicité. Les autres fabricants d’appareils peuvent fournir un autre ID réinitialisable ou continuer à fournir l’ID ANDROID.

Donc, si vous voulez quelque chose d’unique à l’appareil, TM.getDeviceId() devrait suffire.

Voici le code qui montre comment obtenir l’ID du gestionnaire de téléphonie. L’ID de périphérique Android que vous utilisez peut changer sur les parameters d’usine et certains fabricants ont également des difficultés à donner un identifiant unique.

 TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); Ssortingng androidId = Secure.getSsortingng(this.getContentResolver(), Secure.ANDROID_ID); Log.d("ID", "Android ID: " + androidId); Log.d("ID", "Device ID : " + tm.getDeviceId()); 

Assurez-vous de prendre des permissions pour TelephonyManager en utilisant

  

J’ai lu quelques petites choses à ce sujet et malheureusement, ANDROID_ID ne doit pas être utilisé pour identifier de manière unique un périphérique individuel.

Il ne semble pas être appliqué dans les exigences de conformité d’Android et les fabricants semblent donc l’implémenter comme ils le souhaitent, notamment en l’utilisant davantage comme un identifiant de «modèle», etc.

Sachez également que même si un fabricant a écrit un générateur pour en faire un UUID (par exemple), il n’est pas garanti qu’il résiste à une réinitialisation de l’usine.

Il suffit de lister une solution alternative ici, l’identifiant publicitaire:

https://support.google.com/googleplay/android-developer/answer/6048248?hl=en

Copié à partir du lien ci-dessus:

L’ID publicitaire est un identifiant unique, réinitialisable par l’utilisateur, destiné à la publicité, fourni par les services Google Play. Il offre aux utilisateurs de meilleurs contrôles et fournit aux développeurs un système simple et standard pour continuer à monétiser leurs applications. Il permet aux utilisateurs de réinitialiser leur identifiant ou de désactiver les annonces personnalisées (anciennement appelées publicités basées sur les centres d’intérêt) dans les applications Google Play.

Les limitations sont les suivantes:

  1. Appareils compatibles Google Play uniquement.
  2. Règles de confidentialité: https://support.google.com/googleplay/android-developer/answer/113469?hl=en&rd=1#privacy
 //Fields Ssortingng myID; int myversion = 0; myversion = Integer.valueOf(android.os.Build.VERSION.SDK); if (myversion < 23) { TelephonyManager mngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); myID= mngr.getDeviceId(); } else { myID = Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); } 

Oui, Secure.ANDROID_ID est unique pour chaque périphérique.