L'identifiant de l'appareil de l'émulateur Android
Je veux tester dans l'émulateur une application qui dépend de l'identifiant de l'appareil (ANDROID_ID).
Je suis actuellement obtenir l'identifiant de l'appareil avec le code suivant:
final String deviceID = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
Lorsque je l'exécute dans un émulateur, il retourne null
, qui me donne toutes sortes de problèmes. Il semble que plus les versions d'Android, il renvoie à quelque chose.
Est-il un moyen pour obtenir un identifiant de dispositif dans l'émulateur Android? Je suis l'obtention de l'id de l'appareil à tort?
Peut-être qu'il est possible de définir l'identifiant de l'appareil de l'émulateur via la console?
- Aussi, l'ID de périphérique pour l'émulateur sera tous
0
's - Mon Android 4.3 émulateur x86 retourne désormais un ANDROID_ID (287a676592dc7b0d).
Vous devez vous connecter pour publier un commentaire.
Dans l'émulateur, les valeurs de l'IMEI et IMSI sont codé en dur:
par conséquent, vous obtiendrez toujours
null
.Si vous encore souhaitez utiliser ces numéros d'identification pour vos tests et vous souhaitez garder le même code pour l'émulateur et le réel de l'appareil, vous devez le changer dans l'émulateur en quelque sorte.
Il y a au moins deux façons de le faire:
Modifier les valeurs dans le code source et recompiler le code de l'émulateur. Cependant, ce qui pourrait être trop compliqué et prend beaucoup de temps... 🙂
"Hack" de l'émulateur binaires (puisque ce n'est ni compressés ou cryptés - vous pouvez le faire!) et modifier les chaînes (au bon endroit) à droite.
Voici comment le faire:
de sauvegarde de l'émulateur binaire (pour faire reculer! plus tard). Dans Windows, le fichier binaire peut être trouvé sous le nom de "emulator.exe" situé dans votre android "\tools" du dossier.
ouvrir le fichier binaire avec votre favori éditeur hexadécimal
de recherche pour le +CGSN chaîne suivie par un octet nul (il devrait être suivi par 15 chiffres du numéro IMEI - voir l'impression écran ci-dessous)
de modifier le nombre (attention à ne pas changer le nombre de chiffres)
et enregistrez le fichier!
et peut-être changer/ajuster votre code pour utiliser le numéro IMEI de votre pièce d'identité (comme
Falmari
points), ou d'utiliser cette astuce pour modifier certains autres valeurs.emulator-arm.exe
(ouemulator-x86.exe
si vous utilisez la plate-forme Intel).Comme Falmarri dit, l'Id de l'appareil sera de 0 dans l'émulateur.
J'utilise cette méthode pour générer un Identifiant unique de l'appareil basé sur une combinaison de paramètres (il semble fonctionner pour moi même si je n'ai pas testé beaucoup - l'émulateur et un HTC Desire) - ce n'est pas ma méthode (je ne me souviens pas où j'ai creusé jusqu' - mais l'attribution là où c'est utile)
Espère que cette aide.
Si vous voulez non-null émulateur uuid, puis démarrez l'émulateur comme ceci:
C'est bien de pirater l'émulateur binaire de mettre en une autre valeur. Cependant, elle doit commencer par un chiffre décimal parce que dans la référence-ril.c, il appelle
at_send_command_numeric()
la lecture de la valeur. Je crois que doit être modifié pourat_send_command_singleline()
à l'appui de MEID des chaînes de caractères (qui sont généralement de 14 hex chiffres commençant par 'A'). Sauf si vous êtes vraiment intelligent, et peuvent trouver et échanger les adresses de fonction dans le binaire, vous aurez à construire à partir de la source après la mise à jour pour utiliser la même valeur que certains téléphones ont.