Autore Topic: Rilevamento posizione GPS usando l'emulatore  (Letto 1766 volte)

Offline clangel

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Seven
Rilevamento posizione GPS usando l'emulatore
« il: 06 Febbraio 2011, 15:03:40 CET »
0
Buongiorno androidiani, so benissimo che è un argomento fritto e rifritto, ho cercato ovunque una soluzione ma niente, ho letto guide, faq, documentazioni ma.... ci sto sbattendo da un po ormai. Vi illustro il mio problema specifico:
Sto creando una semplice app che premuto un pulsante fornisca le coordinate di latitudine e longitudine sfruttando il gps interno.
Ho studiato un pò il funzionamento del gps con il listener, ho capito che devo prima ottenere un LocationManager al quale registro un listner per il gps.
Una volta fatto ciò invocato il requestLocationUpdates() sul listener mi aspetto di avere ogni tot millisecondi la posizione aggiornata.
Eseguita l'applicazione sull'emulatore, fornisco attraverso gli srumenti del DDMS delle coordinate, sistema reagisce solo che....le coordinate ricevute mi risultano 0.0 !
Facendo delle ricerche ho trovato ke il fix proveniente dal gps è abbastanza lento, ma credo ke il problema sia altrove.
Non riesco a capire da cosa può dipendere, visto che non ho generazione di alcun errore. Non capisco se è nel codice, se è nella logica, o se è nell'emulatore, o nel DDMS.
Codice (Java): [Seleziona]
public class Test extends Activity {
    /** Called when the activity is first created. */
        TextView t = null;
        String lati="";
    LocationManager locationManager = null;
       
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        t = (TextView) findViewById(R.id.TextView01);
        Button b1 = (Button) findViewById(R.id.Button01);
       
     // Otteniamo il riferimento al LocationManager
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
     //creo il listener
        LocationListener locationListener = new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                Double geoLat = location.getLatitude()*1E6;
                Double geoLng = location.getLongitude()*1E6;
                lati = ""+geoLat;
                Log.i("aaaa","ho ricevuto "+geoLat);
                }
            @Override
            public void onProviderDisabled(String provider) {}
            @Override
            public void onProviderEnabled(String provider) { }
                   @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {}
     };

    // Registriamo il LocationListener al provider GPS
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100, 5, locationListener);
       
       
        b1.setOnClickListener(new OnClickListener(){
                @Override
                        public void onClick(View arg0) {
                                  Log.i("aaaa","ho premuto");
                                  t.setText(lati);             
                        }
        });    
    }
}

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Rilevamento posizione GPS usando l'emulatore
« Risposta #1 il: 06 Febbraio 2011, 15:40:01 CET »
0
Fai questa prova:
  • Imposta le coordinate tramite telnet (ti devi connettere con telnet a localhost sulla porta dell'emulatore, che di solito è la 5554)
  • Dai un comando tipo geo fix lat long (dai prima un geo help fix per verificare la correttezza della sintassi)
  • Torna sull'emulatore e apri google maps
  • Esci da google maps e apri la tua applicazione

Offline clangel

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Seven
Re:Rilevamento posizione GPS usando l'emulatore
« Risposta #2 il: 06 Febbraio 2011, 16:06:04 CET »
0
grazie mille :)
con telnet funziona quindi il problema stava con il DDMS, ma chissà come mai, sulla documentazione dell'sdk non da altre spiegazioni. Va bè ti ringrazio davvero!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Rilevamento posizione GPS usando l'emulatore
« Risposta #3 il: 06 Febbraio 2011, 16:13:23 CET »
0
Prova ad aggiornare l'adt all'ultima versione :)