@Allsir

Как определить силу сигнала в дБм в приложении Android (Java)?

Что нужно: по нажатию на кнопку определить силу сигнала сети мобильной связи в данный момент в дБм (на крайний случай - просто отличный/хороший/плохой).

В интернете вроде много примеров, но все какие-то громоздкие и непонятные, прикрутить их к моей программе не получается. Плюс непонятно, почему для этого вроде как подходят сразу несколько классов, а именно:

android.telephony.SignalStrength
android.telephony.CellSignalStrengthCdma (Gsm/Lte)
android.telephony.TelephonyManager


Во всех этих классах есть метод типа getDbm().

Зачем так много вариантов и какой правильней использовать, а главное, почему код примеров для такой ерунды такой объёмный мне неясно.

И ещё такой момент, метод getDbm() в указанных классах отдельный для каждого типа сети (2G, 3G, LTE), может есть что-то универсальное, чтобы просто определить силу, не считаясь с тем какой тип сети доступен?

Минимальное API моего приложения - 17.

Подскажите в какую сторону вообще смотреть (какой класс правильнее выбрать и с ним разбираться) или подкиньте годных примеров, пожалуйста
  • Вопрос задан
  • 324 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DragonSpirit
Mobile Developer
а чем не подходят решение из первых страниц гугла, типа такого?
TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
// for example value of first element
CellInfoGsm cellInfoGsm = (CellInfoGsm)telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthGsm cellSignalStrengthGsm = cellInfoGsm.getCellSignalStrength();
cellSignalStrengthGsm.getDbm();

подробнее есть в доке
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы