2009-12-04 6 views
6

Je souhaite mesurer par programme la puissance du signal d'un téléphone mobile. Je ne me soucie pas vraiment du téléphone portable ou de l'environnement de programmation: Il peut être basé sur Android ou Windows Mobile ou même J2ME et peut être de n'importe quel fabricant (s'il vous plaît pas d'iPhone). Cependant, il doit s'agir d'un véritable téléphone mobile commercial et non d'un appareil de mesure spécial.Mesure de la force du signal téléphonique «réel» sur un téléphone mobile

Ce problème n'est pas aussi facile qu'il n'y paraît avec un premier regard. Je suis conscient qu'il existe déjà un certain nombre de méthodes qui prétendent retourner la force du signal téléphonique. Certains d'entre eux sont :

  • SystemState.PhoneSignalStrength pour WM6
  • RIL_GetCellTowerInfo pour WinCE (membre dwRxLevel de struct RILCELLTOWERINFO retourné)
  • android.telephony.NeighboringCellInfo.getRssi() pour android

Le problème avec ce qui précède est qu'ils ne renvoient que quelques valeurs discrètes (inférieures à 10), ce qui signifie que, par exemple, les valeurs de retour de SystemState.PhoneSignalStrength peuvent seulement être traduites en (par exemple) -100 dbm, -90 dbm, -80 dbm , -70 dbm et -60 dbm, quelque chose qui n'est pas utile pour mon application, puisque j'aimerais avoir autant de précision que possible.

Peu importe s'il existe une solution non documentée qui ne fonctionne que sur un seul téléphone, si vous pouvez me dire d'une façon que je serais reconnaissant.

Merci d'avance

Répondre

2

Voici une solution que je trouve pour les personnes qui cherchent encore une réponse:

Certaines fenêtres mobiles HTC téléphones mobiles ont un programme appelé fieldtest.exe qui contient l'information nécessaire (probablement d'autres téléphones ont aussi que, J'ai seulement testé avec un HTC spécifique, mais à partir de la recherche sur google, je comprends que la plupart des téléphones HTC WM le.) Le programme fieldtest a non seulement la force du signal exact pour le téléphone, mais aussi une grande quantité d'autres informations téléphoniques très utiles qui ne sont pas accessibles autrement.

Le seul problème est comment pouvez-vous utiliser les données de ce programme dans votre processus puisque toutes les valeurs sont stockées dans un ListView.

Eh bien, c'était le point de another question I had posted. Donc, la solution est d'exécuter le programme fieldtest et d'extraire/voler les valeurs requises à partir de là!

1

Sur les plates-formes WindowsCE, cela peut être difficile. La dernière plate-forme sur laquelle j'ai travaillé a utilisé un modem Siemens auquel je pouvais accéder directement et obtenir leurs propres informations. Cependant, depuis leur dernière mise à jour du firmware, ils l'ont maintenant fermé et m'ont forcé à passer par RIL.

Je suppose que vous pourriez avoir à trouver une unité particulière avec un modem particulier. Cependant je n'en connais aucun en particulier. Pardon. :

3

Veuillez consulter le JSR-256 Mobile Sensor API pour Java ME.Les appareils Nokia S60 5ème édition prennent en charge cette API.Vous pouvez vérifier l'intensité du signal réseau en utilisant cette API, mais il serait bon de demander d'abord sa granularité à Nokia Forum.

+0

Je connais le SensorInfo [] signalInfo = SensorManager.findSensors ("network_field_intensity", null); commande, cependant je pensais que quelque chose qui n'est pas pris en charge dans Android ou Windows Mobile ne serait pas pris en charge sur l'environnement J2ME plus restreint. Cependant, je vais essayer de trouver plus d'informations à ce sujet ... – Serafeim

+0

Samsung et Sony-Ericsson ont également des téléphones avec S60 5ème édition et JSR-256 –

+0

Je pense que vous trouverez la même limitation dans les valeurs de mesure avec la plupart des implémentations JSR-256 ainsi que. Les derniers téléphones Sony Ericsson prennent également en charge l'intensité du champ réseau en tant que capteur JSR-256. – Ola

2

Il y a un bon tutoriel qui explique comment obtenir le signal réel GSM mesuré par votre téléphone Essayez ce tutoriel:

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

espère que cela aide,

Adrian.

+0

Cela semble intéressant - mais d'après ce que je vois, il est pris en charge dans Android OS 2.1 et pas les versions plus anciennes. Je n'ai pas un tel téléphone donc je ne peux pas tester maintenant, cependant quelqu'un peut-il répondre à la question sur la granularité? Combien de valeurs discrètes cette fonction va-t-elle renvoyer sur un téléphone spécifique? – Serafeim

Questions connexes