Android эмуляторы с номерами телефонов?

Я работаю над клиент-серверным Android-приложением и пытаюсь выяснить, как однозначно идентифицировать различные телефоны/пользователей на сервере. Моей первой попыткой было бы использовать номер телефона на SIM-карте. Хотя теперь, когда я думаю об этом, насколько часто в наши дни ваш номер телефона меняется, когда вы, например, меняете перевозчика? Я думаю, это зависит от страны и т. д.

в любом случае, я пытался выяснить, так как у меня нет реальных телефонов Android, как изменить номер телефона телефона эмулятора для имитации разных пользователей. Возможно ли это или я должен просто подумать об альтернативных способах идентификации?

3 ответов


на android_id должна однозначно идентифицировать устройство, однако, было отмечено, что идентификатор может быть изменен, если вы знаете, как спуфинг android_id

import android.provider.Settings.System;

String android_id = System.getString(this.getContentResolver(), System.ANDROID_ID);

в эмуляторе,android_id не имеет значения, поэтому вам нужно будет ввести процедуру отладки, чтобы назначить значение самостоятельно.

однако, если вы хотите идентифицировать пользователя и позволить пользователю получить доступ к вашей службе с разных устройств с одним идентификатором пользователя, вам лучше назначить их идентификатор пользователя и их аутентификация в вашей службе с использованием этого идентификатора пользователя в качестве учетных данных. Это позволит им использовать свои идентификаторы на многих разных устройствах, если вы не использовали его в сочетании с android_idandroid_id не был подделан), то вы можете ограничить их одним устройством.


вы должны использовать номер, присутствующий в эмуляторе. Например. обычно первый эмулятор, который работает, имеет номер 5554, 5555 второй, и так далее.

вы можете использовать эти номера для совершения звонков, отправки текстовых сообщений с эмулятора на эмулятор. Это, я думаю, имитирует различные числа / пользователей для ваших целей.


информация о SIM-карте жестко закодирована в двоичные файлы emulator-arm и emulator-x86. Изменение номера телефона (MSISDN) подробно описано в конце этого сообщения в блоге: новая ссылка, веб-архив

SIM-карта хранит номер телефона с каждой 2 цифры поменялись местами. Итак (первые 7 телефонных номеров) 1555521 становится 515525%d1 в двоичном. Хотя немного утомительно, латать его для каждого теста-это не конец света. Вы также можете использовать sed:

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

это изменит номер на 1-876-543 - [номер порта]. Подробности о том, почему в связанном блоге.