Autore Topic: Localizzazione posizione..?  (Letto 568 volte)

ricd

  • Visitatore
Localizzazione posizione..?
« il: 10 Agosto 2013, 17:03:09 CEST »
0
Salve. Mi potete aiutare a capire cosa sbaglio? Ho scritto il codice che serve a localizzare il mio indirizzo della posizione , la latitudine e la longitudine ma non mi trova. Da ORE sto cercando di capire cosa devo fare.Grazie!

public class MainActivity extends Activity implements LocationListener {
    private TextView latituteField;
    private TextView longitudeField;
    private TextView addressField;
    private LocationManager locationManager;
    private String provider;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        latituteField = (TextView) findViewById(R.id.TextView02);
        longitudeField = (TextView) findViewById(R.id.TextView04);
        addressField = (TextView) findViewById(R.id.TextView05);


        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        Criteria criteria = new Criteria();
        provider = locationManager.getBestProvider(criteria, true);
        Log.d("SomeTag", provider);
        Log.d("SomeTag", String.valueOf(locationManager.isProviderEnabled(provider)));
        Location location = locationManager.getLastKnownLocation(provider);


        if (location != null) {
            System.out.println("Provider " + provider + " has been selected.");
            onLocationChanged(location);
        } else {
            latituteField.setText("Please wait for location update...");
            longitudeField.setText("Please wait for location update...");
            addressField.setText("Please wait for location update...");
        }
    }


    @Override
    protected void onResume() {
        super.onResume();
        locationManager.requestLocationUpdates(provider, 400, 1, this);
    }


    @Override
    protected void onPause() {
        super.onPause();
        locationManager.removeUpdates(this);
    }

    @Override
    public void onLocationChanged(Location location) {
       
        double lat = location.getLatitude();
        double lng = location.getLongitude();

        Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
        StringBuilder builder = new StringBuilder();
        try {
            List<Address> address = geoCoder.getFromLocation(lat, lng, 1);
            int maxLines = address.get(0).getMaxAddressLineIndex();
            for (int i=0; i<maxLines; i++) {
                String addressStr = address.get(0).getAddressLine(i);
                builder.append(addressStr);
                builder.append(" ");
            }

            String fnialAddress = builder.toString();

            latituteField.setText(String.valueOf(lat));
            longitudeField.setText(String.valueOf(lng));
            addressField.setText(fnialAddress);

        } catch (IOException e) {}
        catch (NullPointerException e) {}
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {


    }

    @Override
    public void onProviderEnabled(String provider) {
        Toast.makeText(this, "Enabled new provider " + provider,
                Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onProviderDisabled(String provider) {
        Toast.makeText(this, "Disabled provider " + provider,
                Toast.LENGTH_SHORT).show();
    }
}
« Ultima modifica: 15 Agosto 2013, 21:57:55 CEST da ricd »

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:Localizzazione posizione..?
« Risposta #1 il: 16 Agosto 2013, 22:52:53 CEST »
0
Ciao,

ti consiglio di usare le nuove api per la location di google play (http://developer.android.com/google/play-services/location.html), sono molto più semplici da usare.

Quelle che stai usando sono state deprecate