ID unique Pseudo-, qui fonctionne sur tous les appareils Android. Certains périphériques n'ont pas de téléphone (par exemple, les tablettes) ou, pour une raison quelconque, vous ne souhaitez pas inclure l'autorisation READ_PHONE_STATE. Vous pouvez toujours lire des détails tels que la version ROM, le nom du fabricant, le type de CPU et d'autres détails matériels, ce qui convient bien si vous souhaitez utiliser l'ID pour une vérification de clé série ou à d'autres fins générales. L'ID ainsi calculé ne sera pas unique: il est possible de trouver deux appareils avec le même ID (basé sur le même matériel et l'image ROM) mais les chances dans les applications du monde réel sont négligeables. A cet effet, vous pouvez utiliser la classe de construction:
String m_szDevIDShort = "35" + //we make this look like a valid IMEI
Build.BOARD.length()%10+ Build.BRAND.length()%10 +
Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +
Build.DISPLAY.length()%10 + Build.HOST.length()%10 +
Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +
Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +
Build.TAGS.length()%10 + Build.TYPE.length()%10 +
Build.USER.length()%10 ; //13 digits
La plupart des membres sont des chaînes de compilation, ce que nous faisons ici est de prendre leur longueur et le transformer par modulo en un chiffre. Nous avons 13 chiffres de ce type et nous en ajoutons deux de plus en avant (35) pour avoir le même ID de taille que l'IMEI (15 chiffres). Il y a d'autres possibilités ici, regardez ces chaînes.
Renvoie quelque chose comme: 355715565309247.
Aucune autorisation spéciale n'est requise, ce qui rend cette approche très pratique.
http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity l'identifiant unique de l'appareil est le numéro imei, ce qui est différent pour tous les appareils. – Arnold
@Arnold: Parfois, peu d'appareils ne retournent pas l'IMEI. Par exemple des comprimés. –