2009-12-04 18 views
6

Quiero medir mediante programación la potencia de la señal del teléfono en un teléfono móvil. En realidad, no me importa el teléfono móvil o el entorno de programación: puede estar basado en Android o Windows Mobile o incluso J2ME y puede ser de cualquier fabricante (por favor, no iPhone). Sin embargo, debe ser un teléfono móvil real y comercial, y no un dispositivo de medición especial.Medición de la intensidad de la señal del teléfono "real" en un teléfono móvil

Este problema no es tan fácil como parece con un primer vistazo. Soy consciente de que ya existe una serie de métodos que afirman devolver la potencia de la señal del teléfono. Algunos de estos son:

  • SystemState.PhoneSignalStrength para WM6
  • RIL_GetCellTowerInfo para WinCE (miembro dwRxLevel de struct RILCELLTOWERINFO devuelto)
  • android.telephony.NeighboringCellInfo.getRssi() para android

El problema con lo anterior es que solo devuelven algunos (menos de 10) valores discretos, lo que significa que, por ejemplo, los valores de retorno de SystemState.PhoneSignalStrength solo se pueden traducir a (por ejemplo) -100 dbm, -90 dbm, -80 dbm , -70 dbm y -60 dbm, algo que no es útil para mi aplicación, ya que me gustaría tener la mayor precisión posible.

No importa si hay una solución no documentada que solo funciona en un solo teléfono, si me puede decir de una manera que estaría agradecido.

Gracias de antemano

Respuesta

2

he aquí una solución que encontré para las personas que todavía están en busca de una respuesta:

Algunas ventanas móviles HTC teléfonos móviles tienen un programa llamado fieldtest.exe que contiene la información que necesito (probablemente otros teléfonos también tienen que, Solo he probado con un HTC específico pero desde la búsqueda en google entiendo que la mayoría de los teléfonos con HTC WM lo tienen). El programa fieldtest no solo tiene la potencia de señal exacta para el teléfono, pero también una gran cantidad de otra información de telefonía muy útil a la que no se puede acceder de otra manera.

El único problema es cómo puede utilizar los datos de ese programa en su proceso ya que todos los valores se almacenan en un ListView.

Bueno, ese era el punto de another question I had posted.

Por lo tanto, la solución es ejecutar el programa fieldtest y extraer/robar los valores necesarios desde allí.

1

En plataformas WindowsCE esto puede ser difícil. La última plataforma en la que trabajé usaba un módem Siemens al que podía acceder directamente y obtener su propia información. Sin embargo, desde su última actualización de firmware ahora han cerrado esto y me obligaron a pasar por RIL.

Supongo que es posible que deba encontrar una unidad en particular con un módem en particular. Sin embargo, no conozco ninguno en particular. Lo siento. :(

3

Por favor, consulte JSR-256 Mobile Sensor API para Java ME. Los dispositivos de la 5ª edición de Nokia S60 son compatibles con esta API. Puede consultar la intensidad de la señal de red utilizando esta API. Pero es bueno preguntar primero su granularidad.

+0

Conozco SensorInfo [] signalInfo = SensorManager.findSensors ("network_field_intensity", null); comando, sin embargo, pensé que algo que no es compatible con Android o Windows Mobile no sería compatible con el entorno J2ME más restringido. Sin embargo, trataré de encontrar más información sobre esto ... – Serafeim

+0

Samsung y Sony-Ericsson también tienen teléfonos con S60 5th Edition y JSR-256 –

+0

Creo que encontrará la misma limitación en los valores de medición con la mayoría de las implementaciones JSR-256 también. Los últimos teléfonos con funciones de Sony Ericsson también admiten intensidad de campo de red como un sensor JSR-256. – Ola

2

Hay un buen tutorial que explica cómo obtener la señal GSM real medido por el teléfono Prueba este tutorial:

http://www.firstdroid.com/2010/05/12/get-provider-gsm-signal-strength/

espero que ayude,

Adrian.

+0

Esto parece interesante, sin embargo, por lo que veo, es compatible con Android OS 2.1 y versiones no anteriores. No tengo un teléfono así que no puedo probarlo en este momento, sin embargo, ¿alguien puede responder la pregunta sobre la granularidad? ¿Cuántos valores discretos devolverá esta función en un teléfono específico? – Serafeim

Cuestiones relacionadas