Android : Identifiant unique
|J’ai eu, au boulot, à utiliser l’identifiant unique de l’iPhone comme login pour la connexion des clients. J’ai voulu faire de même sur une application Android et je vous propose donc deux petites solutions.
Solution simple
La première solution que je vais vous proposer ne nécessite aucune permission et se résume en une seul ligne.
String android_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
Et voilà, le tour est joué, rien de compliqué.
Solution plus complète
Certains n’auront pas confiance en cette simple ligne de code et voudront un code un peu plus complet.
Pour commencer il faut demander une permission, il s’agit de android.permission.READ_PHONE_STATE. Ouvrez le fichier AndroidManifest.xml, et ajoutez cette permission :
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="fr.expdev.test.testview1" android:versionCode="1" android:versionName="1.0"> <!-- ... --> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> </manifest>
Nous pouvons maintenant utiliser les lignes de code ci-dessous :
final TelephonyManager tm = (TelephonyManager)getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); // cf : ci-dessus String android_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID); // Numéro IMEI String device_id = tm.getDeviceId(); // Numéro de série de la carte SIM // NULL S'il n'y pas pas de carte SIM String sim_serial = tm.getSimSerialNumber(); // Génération d'un numéro unique du genre : XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX UUID deviceUUID = new UUID(android_id.hashCode(), ((long)device_id.hashCode() << 32) | sim_serial.hashCode());
Et voilà le tour est joué, l’identifiant est basé sur :
- l’identifiant d’Android
- le numéro IMEI
- le serial de la carte SIM
Avec un truc comme ça vous êtes sûr d’identifier une seule et unique personne.
Pour finir, il vous suffit d’utiliser la commande ci-dessous pour transformer votre objet UUDI en String :
deviceUUID.toString();






