Skocz do zawartości
heronek

Lokalizacja GPS

    Rekomendowane odpowiedzi

    Witam, zajmuje się prostą aplikacją do pobierania współrzędnych GPS, problem w tym że nie mam pojęcia jak przesyłać pomiędzy klasami danych o lokalizacji gdy ona się zmienia. Próbowałem w taki sposób:

    Wysyłanie:

            public void onLocationChanged(Location location) {
                // TODO Auto-generated method stub
                Intent i = new Intent();
                i.putExtra("B", location.getLongitude());
                
                Intent j = new Intent();
                j.putExtra("L", location.getLatitude());
            }

    Pobieranie:

        Intent i = getIntent();
            if (i.hasExtra("B")) {
                Bundle b = i.getExtras();
                textView5.setText("" + b.getDouble("B"));
            }

    Ale nic nie pobiera...

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    pionas

    Może EventBus?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mmaciejow

    A dodałeś uprawnienia o lokalizacji do manifest.xml?

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Wszystkie uprawnienia są dodane, o tym zawsze pamiętam. Jest zrobiona klasa do otrzymywania lokalizacji GPS która wygląda następująco:

    public class LokalizacjaGPS extends Service implements LocationListener {
        private final Context Context;
        Location location; // lokalizacja
        double latitude; // szerokosc
        double longitude; // dlugosc
        double accuracy;// dokładność
        // Minimalny dystans w czasie
        private static final long MIN_TIME_BW_UPDATES = 1000 * 1; 
        protected LocationManager locationManager;
        // KONSTRUKTOR
        public LokalizacjaGPS(Context context) {
            this.Context = context;
            getLocation();
        }
        public Location getLocation() {
            try {
                locationManager = (LocationManager) Context.getSystemService(LOCATION_SERVICE);
                        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, 0, this);            
                        
            } catch (Exception e) {
                e.printStackTrace();
            }
            return location;
        }
        @Override
        public void onLocationChanged(Location location) {
        }
    
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub
        }
        @Override
        public IBinder onBind(Intent intent) {
            // TODO Auto-generated method stub
            return null;
        }
        public double getLatitude() {
            if (location != null) {
                latitude = location.getLatitude();
            }
            // ZWRACA SZEROKOSC GEO
            return latitude;
        }
        public double getLongitude() {
            if (location != null) {
                longitude= location.getLongitude();
            }
            // ZWRACA DLUGOSC GEO
            return longitude;
        }
        public void stopGPS() {
            if (locationManager != null) {
                locationManager.removeUpdates(LokalizacjaGPS.this);
            }
        }
        public double getAccuracy() {
            if (location != null) {
            }
            return accuracy;
        }
    }

    I właśnie powyższe metody nie zwracają zmieniającej się po interwale geolokalizacji, tylko 0.0, dlatego próbuję z intencjami, ale też nie przynosi to zamierzonego skutku.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x