Android - смена типа сети в эмуляторе - PullRequest
0 голосов
/ 08 января 2019

Мне нужно протестировать мое приложение, которое извлекает имя оператора, значения mcc и mnc из сети. Для тестирования я использую эмулятор от android studio и G-NetTrack Lite в качестве справочного приложения.

Теперь я меняю тип сети с помощью Extended control -> cellular. Я переключаюсь между всеми доступными типами сетей (GSM, HSCSD, GPRS, EDGE, UMTS, HSDPA, LTE). Для каждого типа сети, кроме LTE, мое справочное приложение показывает мне имя оператора, которое равно Android, mcc и mnc vlaues, 310 и 210 соответственно. В моем приложении я вижу такое же поведение. Я извлекаю значения mcc, mnc, анализируя значение оператора:

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        String operator = telephonyManager.getNetworkOperator();

Для получения имени оператора я делаю:

TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
            return tm.getNetworkOperatorName();

По какой-то причине, когда я переключаю тип сети на LTE, мое эталонное приложение показывает мне номер 310260 вместо имени оператора, которое комбинируется с mcc-mnc. Когда я пытаюсь прочитать имя оператора в моем приложении, используя тот же код сверху, моя строка оператора пуста.

Когда я переключаюсь с LTE обратно в любую другую сеть, это все равно происходит - без имени оператора в обоих приложениях. Только когда я снова изменяю тип сети, на что-то другое (кроме LTE) я снова вижу имя оператора в обоих приложениях.

Кто-нибудь сталкивался с таким поведением? Это ошибка в эмуляторе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...