Android JAVA: Autoupdate lokalizacji GPS

0

Witam

Piszę apkę pobierającą lokalizacje z GPSu. To chodzi, ale gdy tylko mam ustawioną akcję pod jakiś button i na TextView wyświetli mi aktualną lokalizację. Chciałbym jednak, aby aplikacja automatycznie odświeżała lokalizacje do TextView jakiegoś, np co 10 metrów. Próbowałem modyfikować metody onLocationChanged, updateLocation, ale to nic nie daje. Może mi ktoś przy tym pomóc radą albo spróbować nawet jakoś te metody uzupełnić. Jeszcze jedno pytanie - jakim sposobem zrobić, aby apka tuż po uruchomieniu już automatycznie już zaczęła pokazywać lokalizacje ?

Kod źródłowy:

Lokalizator:
http://pastebin.com/WEVfzZLe
Main:
http://pastebin.com/jEz7b8CW

0

Generalnie to polecam skorzystać z Google Play Services, do poczytania: https://developer.android.com/training/location/receive-location-updates.html

0

No ok, a przy wykorzystaniu tego co mam da się coś zrobić ? Bo już chcę z tym pokombinować coś.

0

Nie chce mi się dokładnie analizować kodu ale jedno rzuca się w oczy, skoro GPSTracker ma być Serwisem to:

  • nie powinienieś mu przekazywać referencji do komponentu UI w konstruktorze (TextView którego i tak nie używasz nigdzie)
  • tworzyć i pokazywać AlertDialog'u w tej klasie

Generalnie Service ma być jak najbardziej niezależny od komponentów związanych z UI, jeśli chcesz powiązać UI z serwisem użyj interfejsu IBinder albo aktualizuj UI przy pomocy LocalBroadcastManager, ew. jakiegoś EventBusa.

edit:

Jeśli dobrze pamiętam to i tak Service wymaga bezargumentowego konstruktora podobnie jak Activity czy Fragment, więc przekazywanie Contextu w konstruktorze mija się z celem (Service sam dziedziczy po klasie Context).

0

Jak juz napisal ktos wczesniej, uzyj Googe Play Services i ich FusedLocationProviderApi. Jest elastyczne, dba o twoja baterie itp. Wszystkie inne metody obcowania z GPS sa praktycznie deprecated wiec ucz sie jak sie to powinno robic 'poprawnie'.

0

Tu chodzi o to, żeby działało i było to w miarę możliwe do napisania, a zużycie baterii to jest najmniejszy problem. TextView to pozostałości, których nie skasowałem po prostu. Ok to może ktoś coś więcej powiedzieć o pobieraniu lokalizacji za pomocą GP Services czy pomóc w tym.

0

<quote="1136634">Witam

Piszę apkę pobierającą lokalizacje z GPSu. To chodzi, ale gdy tylko mam ustawioną akcję pod jakiś button i na TextView wyświetli mi aktualną lokalizację. Chciałbym jednak, aby aplikacja automatycznie odświeżała lokalizacje do TextView jakiegoś, np co 10 metrów. Próbowałem modyfikować metody onLocationChanged, updateLocation, ale to nic nie daje. Może mi ktoś przy tym pomóc radą albo spróbować nawet jakoś te metody uzupełnić. Jeszcze jedno pytanie - jakim sposobem zrobić, aby apka tuż po uruchomieniu już automatycznie już zaczęła pokazywać lokalizacje ?

Hmmm.... A nie lepiej zainwestować w tego typu urządzenie
user image
Źródło: http://www.gpsguardian.pl/lokalizator-gps-guardian-pro/

0

Problem rozwiązany, dzięki wszystkim za udzielenie się :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1