Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,327
1

Программно определить уровень антенны на телефоне

16.07.2014, 17:02. Просмотров 5028. Ответов 27
Метки нет (Все метки)

Можно ли как нибудь узнать программно уровень антенны на телефоне?Если да то как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2014, 17:02
Ответы с готовыми решениями:

Как определить на какой номер звонят если в телефоне 2 сим карты?
Добрый день. Подскажите, пожалуйста, есть ли возможность в бродкаст ресивере...

Программно определить разрешение экрана
Нужно узнать разрешение экрана полностью. Когда я определяю у меня выводит,...

Почему длина антенны спут. телефона гораздо, меньше антенны излучаемого спутника?
Пытался поискать формы с подобной тематикой, но не нашел, надеюсь тут кто-то...

Ежедекадно в течение июня измерялся уровень воды в десяти речках. Определить подекадно: в каких речках наблюдался самый высокий уровень
Ежедекадно в течение июня измерялся уровень воды в десяти речках. Определить...

Определить активное сопротивление антенны; коэффициент затухания линии; мощность, излучаемую антенной; кпд
Радиопередатчик работает на волне длиной X = 16 м. Мощность генератора...

27
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
16.07.2014, 20:38 2
...не уровень антенны, а уровень сигнала от базовой станции. Уровень сигнала может колебаться в интервале от -113 dBm (слабый сигнал) до -50 dBm (мощный сигнал). Если через последовательный порт извне, то 'AT+CSQ'.

А так через класс android.telephony.SignalStrength, параметр signalStrength.getGsmSignalStrength().
1
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
20.07.2014, 17:45 3
Цитата Сообщение от raxp Посмотреть сообщение
signalStrength.getGsmSignalStrength()
Попробовал... странные цифры получил!
Телефон показывает 4 полоски из 4х на обоих симках... а результат команды обычно 15-17 из 31(по документации). Теоретически это равно 2м полоскам... Не знаете что это значит? Хотелось бы получить то-же что видит юзер в статус-панели телефона! Телефон на столе... цифры прыгают 15-19... а в шапке все еще 4 полосы...
0
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
20.07.2014, 19:12 4
...отнюдь, цифры не странные, это вы делаете ложный вывод, что ПО телефона обязано юзеру отображать в точной пропорции и без округления в соответствии с разрядностью отображения.

цифры прыгают 15-19... а в шапке все еще 4 полосы...
и правильно делают, уровень сигнала зависит от условий в канале связи, дерево шелохнулось на пути сигнала, человек прошелся, сигнал уже меняется. А еще есть такая вещь как фильтрация, усреднение во времени резких скачков. Вот была бы разрядность полосок не 4, а 100 полосок на индикаторе, тогда другое дело. Только вот эргономика не позволяет сто полос нарисовать, негде.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
20.07.2014, 19:29 5
все равно не понятно! Неужели системный индикатор (4 полосы) настолько врет?
15/31 это меньше 2х полос!
20/31 это максимум 3 полосы (2.58 из 4)
Сижу за столом(не двигаю). Здесь ВСЕГДА 4 полосы... А по данным функции получает 2-3...
Ладно бы "не успевал" обновлять системный индикатор, но ведь сигнал не падает!
0
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
20.07.2014, 20:35 6
...вы знаете, восклицательные знаки меня не впечатляют, думаю, даже уверен, мало кого на форуме впечатляют. Это приравнивается к крику.

Вы слышали о нелинейной шкале? Об усреднении и маркетинге?
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
20.07.2014, 20:42 7
Цитата Сообщение от raxp Посмотреть сообщение
Это приравнивается к крику.
Для меня это ("!") акцентирование внимание на предложении. Не более... "!!!" - это уже крик!

Цитата Сообщение от raxp Посмотреть сообщение
Вы слышали о нелинейной шкале?
слышал, но как тогда эти цифры превратить в 4 полоски? нелинейных шкал может быть много...

Цитата Сообщение от raxp Посмотреть сообщение
маркетинге?
Как это может относиться к уровню сигнала? Типа "у нас лучше чем у других"? "У нокии 2 полоски, а у нас всегда 4"?
0
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
20.07.2014, 21:14 8
слышал, но как тогда эти цифры превратить в 4 полоски? нелинейных шкал может быть много...
кусочно-линейной аппроксимацией. В вашем случае достаточно пары-тройки if-ов.

Типа "у нас лучше чем у других"?
во-от, в верном направлении мысль пошла. Такое у производителей мобильных аппаратов далеко не редкость, каждый на свой лад.
1
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
20.07.2014, 22:28 9
Цитата Сообщение от raxp Посмотреть сообщение
кусочно-линейной аппроксимацией. В вашем случае достаточно пары-тройки if-ов
Странно все это! И в инструкциях хоть где-то должны были быть инструкции. И апи вроде универсальное - значит могли подменять цифры еще на этапе драйверов, а не индикаторов... И с иф-ами очень долго буду статистику набирать. И универсальность между устройствами теряется.

Мне надо сделать аналог виджета с состоянием уровня сигнала. Таких сотни на маркете и многие работают... И сигналку повесить (реактор) на падение сигнала ниже уровня (как в батарейке). Но КАК поймать реальный уровень и сравнить его например с 1й полоской? Бегать по городу и искать "ямы"?
0
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
21.07.2014, 07:47 10
...вы погодьте. Причем тут инструкции? Цифры - есть реальные адекватные данные, мнемоническая же индикация не имеет отношения к реальным значениям, это мнемоническая усредненная децимированная прореженная шкала и о никакой универсальности речи быть не может.

Когда делал ActiveX компонент OPC-SMS шлюза, то уровень сигнала в ответе на +CSQ для четырех полосок мнемонически сделал так:
Pascal
1
2
3
4
5
    if csq>80               then il.GetBitmap(2, gsm3.Picture.Bitmap); //0 полосок
    if (csq>31)and(csq<=80) then il.GetBitmap(3, gsm3.Picture.Bitmap); //1
    if (csq>16)and(csq<=31) then il.GetBitmap(4, gsm3.Picture.Bitmap); //2
    if (csq>10)and(csq<=16) then il.GetBitmap(5, gsm3.Picture.Bitmap); //3
    if csq<=10              then il.GetBitmap(6, gsm3.Picture.Bitmap)  //4
1
ValeryS
Модератор
7315 / 5558 / 704
Регистрация: 14.02.2011
Сообщений: 18,844
21.07.2014, 08:07 11
yura91,
А с чего ты взял что на индикаторе показывают мощность сигнала?
там вполне может быть, и даже скорее всего,качество сигнала
4 полосы без потерь пакетов
3 полосы незначительная потеря
2 полосы потери
1 полоса потери существенные( голос затыкается)
0 полос пакеты не доходят
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
21.07.2014, 08:26 12
Понятно! И извените за недоверие! Нагуглил десяток форумов где пытаются безуспешно решить эту проблему... у всех левые цифры показывает. Похожие, но левые... А у многи вообще вечны ноль!

Себе поставил около 5 измерителей - все показывают сигнал не больше 52% при 4х делениях. Один даже график красивый рисует - в среднем 45%. А полоски лишь на минуту-две (в час) уменьшились с 4х до 3х... Помню просто (больше полугода назад) ставил виджеты, и цифры в Дб бегали - думал "осталось просто понять как получить" и смогу свой индикатор нарисовать ("не хуже системного")... Короче в очередной раз гугловцы скриворучили...

А можно ли получить аналог команды +CSQ "изнутри"? Может точнее будет? Более похожим на системный индикатор?

Добавлено через 4 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
А с чего ты взял что на индикаторе показывают мощность сигнала?
там вполне может быть, и даже скорее всего,качество сигнала
А какая разница? Пользователю все равно... "сильнее антена = лучше связь". К тому-же "1 полоса потери существенные( голос затыкается)" можно поймать лишь при разговоре. В режиме ожидания канал минимальный (системный обмен), а линии все равно рисует относительно верно (1 = связь будет очень плохой).

Добавлено через 2 минуты
Меня смутила лишь одна программа - она показывает уровень не только для текущей соты, но и для 5ти соседних. Где-то лишь на 10-15% меньше. Может это тоже влияет на кво линий?
0
ValeryS
Модератор
7315 / 5558 / 704
Регистрация: 14.02.2011
Сообщений: 18,844
21.07.2014, 08:30 13
Цитата Сообщение от Tester64 Посмотреть сообщение
А какая разница? Пользователю все равно...
пользователю да
инженеру нет
можно иметь мощный сигнал и рядом источник помех и все, пакеты не доходят
что рисовать будем?
уровень на антенне или качество сигнала?
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
21.07.2014, 09:10 14
Цитата Сообщение от ValeryS Посмотреть сообщение
пользователю да
инженеру нет
Я инженер, но подзабыл уже... Как определяется "уровень сигнала в GSM"? Кво каналов в диапазоне ограничено, они могут пересекаться (двое заняли один канал). Амплитуда сигнала в FM игнорируется ради помехоустойчивости - думаю в GSM еще сложнее. Но уровень сигнала как амплитуда уже давно не имеет значения. Только количество свободных каналов и их устойчивость к помехам... А эти 2 параметра ИМХО вполне можно обозвать "качеством сигнала" по некой сложной формуле, зашитой в чип...

Меня возмущает лишь тот факт что система для индикатора использует одни данные, а в API от гугла выдает совсем другие, не совместимые с системными. И вообще гугл сильно отстает от мира мобильного рынка - где сигнал для второй симки? Нашел только какие-то исходники на си с хелпами на англо-китайском...
0
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
21.07.2014, 12:29 15
А можно ли получить аналог команды +CSQ "изнутри"?
CSQ возвращает то же что и signalStrength.getGsmSignalStrength() (-113 dBm (слабый сигнал) до -50 dBm (сильный сигнал)) + качество сигнала, через запятую.

Если бы вы порылись в кишках класса http://developer.android.com/referen...lStrength.html, то нашли бы и getGsmBitErrorRate и SNR/
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
21.07.2014, 14:02 16
Цитата Сообщение от raxp Посмотреть сообщение
getGsmBitErrorRate и SNR
У меня оба параметра = -1, хотя соотношение согласно документации должно быть 0..8
Надеялся что это (умножив/разделив) приблизит меня к 4м полоскам!
0
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
21.07.2014, 19:04 17
Не факт, что API телефона поддерживает полностью данный класс.

Надеялся что это (умножив/разделив) приблизит меня к 4м полоскам!
притянуто за уши. Поймите, 4 - полоски - это мнемоника, а не инженерный параметр и стандартов на него нет, кроме разве внутри производителей.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
21.07.2014, 21:45 18
Цитата Сообщение от raxp Посмотреть сообщение
Поймите, 4 - полоски - это мнемоника, а не инженерный параметр и стандартов на него нет, кроме разве внутри производителей
Мелькала мысль, что умножив на кофициент ошибок, который плавно меняется по жуткой формуе с увеличением/меньшеним мощности. Получу например надежные 100% от которого можно строить полоски.

Сейчас у меня максимум 53% при идеальной связи. Найдено методом долгого изучения графика. Откуда взялась эта цифра не знаю! Как и не знаю что с ней дальше делать. У другого телефона максимум может быть другим (если вообще определится - англо-форумы за 3 года сильно жаловались на 0й сигнал). Если напишу программу, есть БОЛЬШОЙ шанс что она не будет корректно работать на другом устройстве! Пишу свой "комбаин" и хотел добавить пищалку/вибрацию на потерю сигнала (или крупную индикацию во время разговора). Про вторую симку вообще молчу! Думал вот функция - 30 строчек и готово дополнение. А теперь задвигаю в "долгий ящик" до времен когда смогу добраться до чтения китайских исходников...
0
raxp
10186 / 6569 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
21.07.2014, 22:01 19
...а вы рядом с полосками или вместо просто выводите числа, к ним как раз вопросов не будет.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
22.07.2014, 05:08 20
Цитата Сообщение от raxp Посмотреть сообщение
...а вы рядом с полосками или вместо просто выводите числа, к ним как раз вопросов не будет.
У меня в планах три метода примения для этой технологии:

1) Иду по городу и вдруг падает сигнал до 0. Либо завис GSM модуль либо связь пропала. Хочу знать об этом! До меня не дозвониться! Занести в лог и выдать что сеть пропадала с 5:00 до 6:00. Пищать/орать/вибрировать об этом. Что-бы никто не мог пожаловаться что со мной нет связи... Пока не уверен что 0% соответствует реальному 0! По документации это вообще похоже особый уровень =99 при реальной связи 0..31.

2) Во время разговора я плохо слышу абонента или он жалуется что не слышет меня. Смотрю на малюсенький значок в уголке - но его почти не видно(летнее солце или снег). Почему бы не сделать либо жирную сочную полоску-ползунок по центру экрана во время разговора либо менять цвет всего окна звонка на красный при падении сигнала с огромным предупреждением. Либо вибро/голос/звук на падение сигнала. Смотрю на экран, а там 53%! По логике это половина, а на практике это =100%. А что означает 10%??? Это очень плохо? Или обычному юзеру показывать цифры в децебелах со знаком минус? -79 dBm = это хорошо?

3) GPS трекер. Отправляет позицию и состояние мобилки ребенка/жены/менеджера. Где находится? Есть ли деньги на счету? Почему говорит что не "смог позвонить" в 14:00? Врет или лажа со связью? Статистика по зонам без сети ("мертвые зоны") для менеджеров. "Васе не позвонить - он сейчас в селе Жопово - там связь плохая"
Единственное решение которое вижу - создать ботнет из своих других программ и тайно собрать эту статистику с десятка-сотни телефонов для анализа... Гугл заставляет меня писать вирус!

Добавлено через 6 часов 0 минут
Короче... методом проб и ошибок... для своего телефона (на других еще не тестил) получил константы:
максимальный уровень = 18 (вместо обещаных 31)
4 линии если больше 12
3 если больше 9
2 если больше 5
0 и 1 пока не смог замерить - сигнал дома сильный...

Сделал плавающую панельку с цифрами - буду тестить...
0
22.07.2014, 05:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2014, 05:08

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

Работа со звуком более или менее низкий уровень. Получить уровень сигнала микрофона
Доброго дня или ночи. Вобщем товарищи дело такое. предо мной стоит задача...

Определить уровень громкости в системе
Доброго времени суток... Люди подскажите как получить число на сколько сейчас...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru