Autore Topic: GPS posizione tramite Provider  (Letto 1123 volte)

Offline mist3r0

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
GPS posizione tramite Provider
« il: 28 Settembre 2010, 12:36:21 CEST »
0
Ciao RAgazzi, sto provando a creare un'applicazione che mi calcoli la posizione tramite i provider.

Questo è il codice che ho scritto, ma eseguendola sul cellulare non mi viene restituita nessuna posizione.

Qualcuno può aiutarmi?

Codice (Java): [Seleziona]
public class GpsPosition extends Activity {

        private LocationManager manager;
        private LocationListener listener;
        private String posizione;


        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                posizione = "";
                manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                Criteria c = new Criteria();
                c.setAccuracy(Criteria.ACCURACY_FINE);
                String provider = manager.getBestProvider(c, true);
                listener = new MyLocationListener();
                manager.requestLocationUpdates(provider, 10000L, 10.0f, listener);

        }

        private class MyLocationListener implements LocationListener {

                public void onLocationChanged(Location location) {
                        // TODO Auto-generated method stub
                        try {
                                if (location != null) {
                               
                                        posizione = "Lat.:" +location.getLatitude()+"/t Long.:"+location.getLongitude();

                                //      Bundle bundle = new Bundle();

                                        //bundle.putString("coordinate", posizione);

                                        Intent res = new Intent();

                                        res.putExtra("coordinate", posizione);
                                       
                                        setResult(RESULT_OK, res);
                                        finish();
                                }
                        } catch (Exception e) {
                                e.printStackTrace();
                        }

                }

                public void onProviderDisabled(String provider) {
                        // TODO Auto-generated method stub
                }

                public void onProviderEnabled(String provider) {
                        // TODO Auto-generated method stub
                }

                public void onStatusChanged(String provider, int status, Bundle extras) {
                        // TODO Auto-generated method stub
                }
        }
}
« Ultima modifica: 28 Settembre 2010, 13:35:13 CEST da JD, Reason: Usate i bbcode java e xml!! xD »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:GPS posizione tramite Provider
« Risposta #1 il: 28 Settembre 2010, 13:01:36 CEST »
0
Ti sei accertato tramite ad esempio programmi come Gps Status che il fix sia stato fatto?

Offline mist3r0

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:GPS posizione tramite Provider
« Risposta #2 il: 29 Settembre 2010, 01:09:46 CEST »
0
Grazie lo stesso ma ho risolto! :D

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:GPS posizione tramite Provider
« Risposta #3 il: 29 Settembre 2010, 01:10:52 CEST »
0
Possiamo sapere come? :D
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline mist3r0

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:GPS posizione tramite Provider
« Risposta #4 il: 29 Settembre 2010, 01:19:40 CEST »
0
semplicemente con il codice scritto su...

in pratica se si vuole fare tramite il click di un bottone basta fare:

Ammettendo di chiamare tale bottone posgps, scriviamo quanto segue:

Codice: [Seleziona]
posGps.setOnClickListener(new OnClickListener() {

                                @Override
                                public void onClick(View v) {
                                        LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                                        Criteria c = new Criteria();
                                        c.setAccuracy(Criteria.ACCURACY_FINE);
                                        String provider = manager.getBestProvider(c, true);
                                        MyLocationListener listener = new MyLocationListener();
                                        manager.requestLocationUpdates(provider, 10000L, 10.0f, listener);
                                }
                        });

dopo di che andiamo a definire il nostro oggetto MyLocationListener, che non è altro che l'estensione del LocationListener:

Codice: [Seleziona]
private class MyLocationListener implements LocationListener {

                public void onLocationChanged(Location location) {
                        // TODO Auto-generated method stub
                        try {
                                if (location != null) {
                                        String posizione = "La tua posizione attuale è:" +"Lat.:" + location.getLatitude() + "\n"+"Long.:" + location.getLongitude();
                                }
                        } catch (Exception e) {
                                e.printStackTrace();
                        }

                }

Non mi ritornava i valori perchè non ero connesso ad internet, quindi attivava il gps e attendeva un fix che arrivava lentamente!  :-(

ho provato a connettermi ed in 1 secondo mi ha dato le coordinate.  :D