Эмуляторы Android с номерами телефонов? - PullRequest
6 голосов
/ 14 апреля 2009

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

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

Ответы [ 3 ]

6 голосов
/ 14 апреля 2009

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

import android.provider.Settings.System;

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

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

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

3 голосов
/ 14 апреля 2009

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

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

1 голос
/ 23 апреля 2013

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

На SIM-карте телефонный номер сохраняется при каждой замене двух цифр. Таким образом (первые 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- [НОМЕР ПОРТА]. Подробности о том, почему, находятся в связанном сообщении в блоге.

...