2009-10-13 11 views
3

J'essaie de concevoir ma première application Android avec l'utilisation du GPS. En ce moment, j'ai un bouton drawable qui, lorsqu'on clique dessus, alerte un message Toast de la longitude et de la latitude. J'ai essayé d'utiliser le telnet localhost 5554 puis geo fix #number pour alimenter les valeurs mais aucun résultat ne s'affiche juste 00. J'ai aussi essayé la méthode DDMS d'envoi des coordonnées GPS et je reçois la même chose.Android nuage de confusion GPS!

Ma question est ce qui est exactement la bonne façon d'utiliser le géo-fix et la façon DDMS d'envoyer des coordonnées. J'ai utilisé Location, LocationManger et LocationListener mais je ne sais pas quel est le bon choix.

code est donné, juste au cas où si l'erreur existe avec le code

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button button = (Button) findViewById(R.id.track); 
    button.setOnClickListener(this); 
    LocationManager location =(LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    Location loc = location.getLastKnownLocation(location.GPS_PROVIDER); 
    updateWithNewLocation(loc); 

    } 

private final LocationListener locationListener = new LocationListener() { 
    public void onLocationChanged(Location location) { 
    updateWithNewLocation(location); 
    } 

    private void updateWithNewLocation(Location l) { 
    longitude = l.getLongitude(); 
    latitude = l.getLatitude(); 
    provider = l.getProvider();  
    } 

    public void onClick(View v) { 
    Toast.makeText(this, "Your location is " + 
     longitude + " and " + latitude + " provided by: " + 
     provider, Toast.LENGTH_SHORT).show();   
    }  
} 
+1

Pourriez-vous reformater votre code? Commencez chaque ligne avec 4 espaces, et tout deviendra un gros bloc. –

+2

Quel problème réel observez-vous? Est-ce que cela échoue à obtenir des coordonnées? Renvoie-t-il des données factices? Est-ce qu'il lance une exception? –

Répondre

3

Deux choses

1) Faire la latitude et volatile

2 longitude) Essayez de vous enregistrer en tant qu'auditeur à le gestionnaire de localisation GPS

location.requestLocationUpdates (LocationManager.GPS, 100, 1, locationListener);

Cela devrait vous permettre d'envoyer des rappels à votre objet locationListener.

Vous pouvez vérifier certains exemples de code GPS Android ici: http://www.devx.com/wireless/Article/43005

(ISSEMENT DevX a ajouté un atterrissage d'inscription depuis que j'ai ajouté ce lien)

+0

L'exemple de code conduit à un site avec un mur d'enregistrement. Comme c'est ennuyeux. –

+0

Yikes! C'est embêtant! Désolé pour cela, je pense que devX a ajouté l'enregistrement de l'atterrissage au cours du dernier mois :-(Ajout d'un avertissement à la réponse – haseman

+0

Pour contourner le mur de paiement, collez l'URL dans google search, puis cliquez dessus. t montrer une page différente à google qu'à vous (via google) –

1

commentaire la ligne Localisation loc = location.getLastKnownLocation (location.GPS_PROVIDER);

et tester l'application par la mise à jour GPS manuellement dans DDMS

si cela fonctionne, revenez au code puis mettre Emplacement loc = location.getLastKnownLocation ("GPS");

+0

J'ai essayé de faire comme vous l'avez suggéré quand j'ai rencontré le problème, mais maintenant c'est corrigé et ce n'est plus vraiment un problème. travailler parce que je n'ai pas enregistré un écouteur pour mes mises à jour de localisation. Merci de replyng de toute façon. –