目标:获取特定类型的连接(我实际上正在使用的连接)的信息(信号强度)。
问题:我不确定要确切了解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()
不仅返回一种连接信息,而且可以混合使用。
我想了解我的手机是使用所有返回的手机还是仅使用其中一个(在后一种情况下,如何找到我正在使用的手机)。