2008-10-23 8 views
3

Existe-t-il un moyen de déterminer par programmation une position géographique approximative d'un téléphone mobile à l'aide de l'application J2ME, par exemple pour déterminer la cellule actuelle? Cette question s'applique particulièrement aux appareils non compatibles GPS.Position géographique de l'application mobile Java?

Je ne cherche pas un ensemble de coordonnées géographiques, mais la possibilité pour un utilisateur de définir des comportements logiciels spécifiques à l'emplacement.

Une solution pour tout matériel sera très appréciée; Cependant, plus une solution est générique, mieux c'est. Merci beaucoup!

Répondre

7

Si le périphérique prend en charge l'API d'emplacement JSR 179, vous pouvez l'utiliser. La dernière fois que j'ai regardé dans ce peu de périphériques l'ont soutenu, mais c'était il y a quelques années.

0

Je ne crois pas qu'il existe une API J2ME générale pour déterminer l'emplacement. Je sais que BlackBerry a une API spécifique pour récupérer non seulement l'emplacement brut de la «cellule», mais aussi une API GPS.

J'ai peur, pour le moment, que les solutions GPS soient la propriété du fabricant.

+0

Merci Ken, des liens que vous pourriez fournir pour BlackBerry? –

+0

Vous devrez peut-être vous inscrire en tant que développeur BB (gratuit) pour voir ce document. Il y a aussi apparemment un JSR pour javax.microedition.location et BB a une implémentation. [http://na.blackberry.com/eng/developers/javaappdev/advancedfeatures.jsp] –

0

IMO, aucune application ne sera capable de le faire tout seul. Il aura besoin de l'aide d'un satellite ou d'un téléphone portable, les tours de téléphonie cellulaire, pour traingulate la position où le téléphone cellulaire est actuellement, ce qui est précis à environ 30-50 mètres. Le calcul ici sera effectué par le logiciel dans les tours cellulaires ou celui du satellite. Votre application fera seulement une demande et recevra ensuite les données envoyées en réponse.

Encore une fois, les API que vous utiliserez seront celles qui ont été fournies par la compagnie de téléphonie cellulaire ou par le service Sattellite. Ce ne sont presque jamais gratuits. Je ne suis pas sûr qu'ils le vendent aussi aux utilisateurs d'oridinary. Seulement peut-être les grandes entreprises comme Blackberry ou similaire.

+1

La question n'a pas précisé à quelle précision. Si l'application n'a besoin que de connaître la ville ou le code postal, il suffit de connaître la tour de téléphonie cellulaire la plus puissante. Dans les zones urbaines denses, la simple connaissance de la tour cellulaire peut être aussi précise que quelques pâtés de maisons. –

+0

Je sais qu'il n'a pas précisé à quelle précision, je pensais juste que je le mettrais là. :) – user20358

6

Ceci est mon premier post un stackoverflow.

Vous pouvez obtenir le identifiant cellulaire (L'identifiant du pôle téléphonique que le mobile est connecté à) sur un grand nombre de téléphones à travers System.getProperty(String arg) Ici, j'ai un exemple qui tente quelques clés pour voir si un identifiant cellulaire peut être a trouvé. J'ai testé cela sur beaucoup de mobiles SonyEricsson et ça marche bien, tant que ce n'est pas un mobile Symbian comme P1 et ainsi de suite. Si vous effectuez une recherche sur le net vous pourriez probablement trouver beaucoup plus de clés pour trouver cellID: s pour Motorola, Samsung et ainsi de suite.

try{ 
    String[] cellIDTags = {"com.sonyericsson.net.cellid", "phone.cid", "Siemens.CID", "CellID"}; 
    for(int i = 0; i < cellIDTags.length; i++){ 
    cellID = System.getProperty(cellIDTags[i]); 
    if(cellID != null && cellID != ""){ 
     location.setCellId(cellID); 
     break; 
    } 
    } 
}catch(Exception e){ 
    cellID = ""; 
} 
0

J'ai parcouru par de nombreux site de téléchargement de l'application, mais ne trouvez pas :: Mais je suis sûr que des recherches sur ce qui pourrait vous aider à construire votre propre application avec l'API J2ME. Comme le code donné par DAN donne le numéro de la station de base. Vous pouvez reconnaître la station la plus proche à laquelle la cellule est capable de correspondre. En fait, une cellule est capable de capturer au moins 6 stations simultanément, de sorte que Deamonkid explique que la multilatération peut être utilisée pour approximer la position, à condition que vous ayez une carte géoréférencée de votre région ou ville. L'application calcule la distance et la direction de la tour la plus proche et la carte a déjà les coordonnées de cette station de base. Vous pouvez donc calculer la suresh coordonnée spatiale (estimée). Vous pouvez obtenir la précision de 100 mètres par ceci. Cela nécessite probablement l'application de mesure de l'intensité du signal que vous pourrez probablement télécharger. Maintenant, si vous pouvez générer du code sur cette base, partagez-le. Je suis également dans une recherche approfondie à ce sujet. Bonne chance suresh et tout

Questions connexes