Что такое CellInfo и как использовать getAllCellInfo для получения информации только об одном типе подключения? - PullRequest
0 голосов
/ 03 октября 2018

ЦЕЛЬ: получить информацию (уровень сигнала) о конкретном типе подключения (которое я на самом деле использую).

ПРОБЛЕМА: Яне уверены, что точно понимаете, что представляет собой 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() не возвращает только один вид информации о подключении, но они могут быть смешанными.Я хочу понять, использует ли мой телефон все возвращенные или только один из них (и в последнем случае, как найти тот, который я использую).

...