CellInfo到底是什么?如何使用getAllCellInfo来获取仅一种连接类型的信息?

时间:2018-10-03 09:42:28

标签: java android telephonymanager cellinfo

目标:获取特定类型的连接(我实际上正在使用的连接)的信息(信号强度)。

问题:我不确定要确切了解CellInfo的含义以及如何从getAllCellInfo提取信息

问题:

1)来自android开发者网站

  

CellInfo:来自某个时间点的不变的单元格信息。

这是什么意思?

2)我想了解我使用的是wcdma,umts,gsm还是lte。我在改编版下面找到了使用 getAllCellInfo 的代码片段,以获取信号强度

  for (final CellInfo info : telephonyManager.getAllCellInfo()) {

            if (info instanceof CellInfoGsm) {

                final CellSignalStrengthGsm gsm = ((CellInfoGsm) info).getCellSignalStrength();
                if(gsm.getLevel() >= localMaxSignalStrength)
                     localMaxSignalStrength = gsm.getLevel();
                Toast.makeText(getApplicationContext(), "gsm rssi" + localMaxSignalStrength, Toast.LENGTH_LONG).show();

            } else if (info instanceof CellInfoWcdma) {

                final CellSignalStrengthWcdma cdma = ((CellInfoWcdma) info).getCellSignalStrength();
                if(cdma.getLevel() >= localMaxSignalStrength)
                    localMaxSignalStrength = cdma.getLevel();
                Toast.makeText(getApplicationContext(), "wcdma rssi" + localMaxSignalStrength, Toast.LENGTH_LONG).show();

            } else if (info instanceof CellInfoLte) {

                final CellSignalStrengthLte lte = ((CellInfoLte) info).getCellSignalStrength();
                if(lte.getLevel() >= localMaxSignalStrength)
                    localMaxSignalStrength = lte.getLevel();
                Toast.makeText(getApplicationContext(), "lte rssi" + localMaxSignalStrength, Toast.LENGTH_LONG).show();

现在从我在Android开发人员网站上阅读的内容

  

getAllCellInfo():从设备上的所有无线电返回所有观察到的小区信息   包括主小区和相邻小区。调用此方法确实   不会触发对onCellInfoChanged()的调用,也不会更改   onCellInfoChanged()被调用。

     

该列表可以包含一个或多个 CellInfoGsm,CellInfoCdma,   CellInfoLte和CellInfoWcdma对象,可以任意组合。

因此,这意味着getAllCellInfo()不仅返回一种连接信息,而且可以混合使用。 我想了解我的手机是使用所有返回的手机还是仅使用其中一个(在后一种情况下,如何找到我正在使用的手机)。

0 个答案:

没有答案