Мне нужно протестировать мое приложение, которое извлекает имя оператора, значения 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) я снова вижу имя оператора в обоих приложениях.
Кто-нибудь сталкивался с таким поведением? Это ошибка в эмуляторе?