Autore Topic: Problema rilevamento posizione  (Letto 895 volte)

Offline lucacali87

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg dual
  • Sistema operativo:
    windows seven
Problema rilevamento posizione
« il: 02 Marzo 2013, 13:01:53 CET »
0
salve ragazzi, devo fare un pezzo di codice in cui, cliccato su un bottone, viene rilevata la posizione tramite gps(dovrò farlo anche per la rete come si vede nel secondo pezzo del codice)
Il problema è che non me la rileva(non so perchè eclipse non invia le cordinate quindi devo provare sempre sul cell).
Un primo errore è che non attende il rilevamento, dovrei fare un popup rilevamento fino a che non è collegato il segnale(per aggirare momentaneamente avvio l'apk con gps già aggangiato).
Il secondo errore è che nn riesco a far rilevare la posizione posizione, ecco il codice(anche abbastanza semplice eppure ho fatto qualche errore che non trovo)
Qualche suggerimento?

Codice: [Seleziona]
public class PosizioneActivity extends Activity {

        private String providerId = LocationManager.GPS_PROVIDER;
        private double citta;
        private double indirizzo;
        private Geocoder geocoder;
       
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_posizione);
                final LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
                final AlertDialog.Builder gpsAlertBuilder = new AlertDialog.Builder(this);
               
                geocoder=new Geocoder(this);
               
               
               
                Button button=(Button)findViewById(R.id.buttonGps);
        button.setOnClickListener(new OnClickListener() {
                       
                        public void onClick(View v) {
                                Location location = locationManager.getLastKnownLocation(providerId);
                                //Messaggio per attivazione gps se disattivato
                                if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                                           
                                            gpsAlertBuilder.setIcon(R.drawable.attenzione);
                                            gpsAlertBuilder.setTitle("Attivazione");
                                            gpsAlertBuilder
                                                            .setMessage("E' necessario attivare GPS e connessione internet");
                                            gpsAlertBuilder.setCancelable(false);
                                            gpsAlertBuilder.setPositiveButton("Attiva",
                                                            new DialogInterface.OnClickListener() {
                                                                    public void onClick(DialogInterface dialog, int id) {
                                                                                    startActivityForResult(
                                                                                            new Intent(
                                                                                                            android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS),
                                                                                            0);
                                                                    }
                                                            });

                                            gpsAlertBuilder.setNegativeButton("Annulla",
                                                            new DialogInterface.OnClickListener() {
                                                                    public void onClick(DialogInterface dialog, int id) {
                                                                            System.exit(0);
                                                                    }
                                                            });
                                            AlertDialog gpsAlert = gpsAlertBuilder.create();
                                            gpsAlert.show();
                                    }
                                //Fine messaggio attivazione
                               
                               
                                //Rilevare posizione
                               
                                Address address;
                                                                                       
                                                        try {
                                                                address = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(),
                                                                                1).get(0);
                                                                citta=address.getLocality();
                                                                indirizzo=address.getAddressLine(0);
                                                        } catch (IOException e) {
                                                                // TODO Auto-generated catch block
                                                                e.printStackTrace();
                                                        }
                                                       
                               
                               
                        }
                       
                });
       
        //Rilevare posizione tramite rete
        Button button3g=(Button)findViewById(R.id.button3g);
        button3g.setOnClickListener(new OnClickListener() {
                       
                        public void onClick(View v) {
                                providerId = LocationManager.NETWORK_PROVIDER;
                                Location location3g = locationManager.getLastKnownLocation(providerId);
                               
                                //Rilevare posizione
                               
                                Address address;
                                                                                       
                                                        try {
                                                                address = geocoder.getFromLocation(location3g.getLatitude(), location3g.getLongitude(),
                                                                                1).get(0);
                                                                citta=location3g.getLatitude();
                                                                indirizzo= location3g.getLongitude();
                                                        } catch (IOException e) {
                                                                // TODO Auto-generated catch block
                                                                //e.printStackTrace();
                                                        }
                                                       
                               
                               
                        }
                       
                });
       
       
       
        Button buttonConfirm=(Button)findViewById(R.id.buttonConferma);
    buttonConfirm.setOnClickListener(new OnClickListener() {
                   
                    public void onClick(View v) {
                                                           
                                //passiamo i dati all'activity chiamante
                                Intent intent=new Intent(getApplicationContext(), InserisciActivity.class);
                                String pkg=getPackageName();
                                intent.putExtra(pkg+".myCity", citta);             
                        intent.putExtra(pkg+".myAddress", indirizzo);                     
                            startActivity(intent); //facciamo partire la seconda activity
                           
                    }
            });
   
        }

        /*@Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.posizione, menu);
                return true;
        }*/

}

Offline pup3770

  • Utente junior
  • **
  • Post: 89
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy s3
  • Sistema operativo:
    Android
Re:Problema rilevamento posizione
« Risposta #1 il: 24 Febbraio 2014, 10:58:10 CET »
0
Ciao, sono nuovo nel forum e ho appena visto che anche tu stai cercando di fare parte di quello che serve a me. Io dovrei prelevare le coordinate GPS ogni volta che premo il pulsante oppure ad intervalli che imposto io. Come posso fare? Non conosco bene la programmazione Android ma puoi aiutarmi in modo da poter riuscire a capire?

Grazie in anticipo

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema rilevamento posizione
« Risposta #2 il: 24 Febbraio 2014, 12:05:13 CET »
0
Quello che state cercando è qui:
Retrieving the Current Location | Android Developers

ps: il codice che stai utilizzando è "vecchia maniera".