Android-更改模拟器奇怪行为中的网络类型

时间:2019-01-08 13:22:43

标签: android android-emulator lte

我需要测试我的应用,该应用提取网络的运营商名称,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除外),两个应用程序中才能再次看到运营商名称。

有人遇到过这种行为吗?这是模拟器中的错误吗?

0 个答案:

没有答案