Ejecución de varios emuladores de Android con diferentes números de teléfono

Cartel de la primera vez aquí.

Estoy trabajando en una aplicación cliente-servidor de Android y tratando de averiguar cómo identificar diferentes teléfonos / usuarios al servidor sin ambigüedad. Mi primer intento sería utilizar el número de teléfono en la tarjeta SIM. Aunque ahora que lo pienso, ¿qué tan común es hoy en día que su número de teléfono cambia cuando cambia de operador por ejemplo? Supongo que depende de un país a otro, etc.

De todos modos, he estado tratando de averiguar, ya que no tengo teléfonos Android, cómo cambiar el número de teléfono del teléfono del emulador para simular diferentes usuarios. ¿Es posible o debería pensar en formas alternativas de identificación?

Se supone que el android_id identifica de forma exclusiva el dispositivo, sin embargo, se ha observado que el id se puede cambiar si sabes cómo Spoofing android_id

 import android.provider.Settings.System; String android_id = System.getString(this.getContentResolver(), System.ANDROID_ID); 

En el emulador, el android_id no tiene un valor, por lo que tendrá que poner una rutina de depuración en para asignar un valor a ti mismo.

Sin embargo, si desea identificar al usuario y permitir que el usuario acceda a su servicio desde diferentes dispositivos con un identificador de usuario, es mejor asignarle una identificación de usuario y hacer que se autentiquen a su servicio utilizando este ID de usuario como credencial. Esto les permitiría usar sus id's en muchos dispositivos diferentes, a menos que lo usas en conjunto con android_id (y el android_id no fue falsificado), entonces podrías limitarlos a un solo dispositivo.

Debe utilizar el número presente por el emulador. P.ej. Generalmente el primer emulador que se está ejecutando tiene número 5554, segundo 5555, y así sucesivamente.

Puede utilizar estos números para realizar llamadas, enviar mensajes de texto desde el emulador al emulador. Esto, creo, simula diferentes números / usuarios para sus propósitos.

La información de la tarjeta SIM está codificada en los binarios emulador-brazo y emulador-x86. Cambiar el número de teléfono (MSISDN) se detalla al final de esta entrada de blog: nuevo enlace , archivo web

La tarjeta SIM almacena el número de teléfono con cada 2 dígitos intercambiados. Así que (el primer 7 del número de teléfono) 1555521 convierte en 515525%d1 en el binario. Mientras que un pedacito tedioso, remiendo él para cada prueba no es el extremo del mundo. También puede usar sed:

 cd path/to/android-sdk-linux/tools/ cp emulator-arm emulator-arm.backup sed -i 's/515525%d1/816745%d3/g' emulator-arm 

Esto cambiará el número a 1-876-543- [NÚMERO DE PUERTO]. Los detalles sobre por qué están en el blog vinculado.

  • 'Webpage not available' con WebView.loadData () SOLAMENTE en el emulador
  • Servidor de acceso de emulador androide en red local
  • Android M (vista previa) Doze mode y AlarmManager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.