Programowanie w technologii Android

Transkrypt

Programowanie w technologii Android
Laboratorium - Programowanie w technologii Android
Programowanie w technologii
Android
Wykorzystanie informacji z GPS
Część I
Krzysztof Bruniecki
Marek Kulawiak
1
Laboratorium - Programowanie w technologii Android
Wstęp
Po stworzeniu nowego projektu pierwszą rzeczą jaką warto zrobić jest nadanie naszej
aplikacji uprawnień do używania GPS, Internetu oraz innych narzędzi lokalizacyjnych (BTS,
Wi-Fi). W tym celu należy uzupełnić plik AndroidManifest.xml o następujące węzły:
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
android:name="android.permission.INTERNET" />
Interesujące z punktu widzenia użycia informacji GPS klasy znajdują się w pakiecie
android.location.
Aby używać w programie wskazań GPS należy utworzyć obiekt typu LocationManager
używając metody klasy Activity:
Activity.getSystemService(Context.LOCATION_SERVICE);
Następnie należy stworzyć własny obiekt nasłuchujący danych z GPS, implementujący
interfejs LocationListener:
LocationListener ll = new LocationListener()
{
@Override
public void onStatusChanged(String provider,
int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
};
@Override
public void onLocationChanged(Location location) {}
Do zarejestrowania powyższego obiektu należy użyć odpowiedniej metody klasy
LocationManager:
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
2
Laboratorium - Programowanie w technologii Android
Symulowanie odbiornika GPS
Jednym ze sposobów symulowania odbiornika GPS z użyciem emulatora systemu Android
jest skorzystanie z programu telnet:
telnet localhost 5554
W celu wysłania informacji geograficznej można użyć instrukcji:
geo fix <longitude> <latitude> <altitude>
Możliwe jest również wysłanie instrukcji protokołu NMEA:
geo nmea <sentence>
Do symulowania odbiornika GPS można również skorzystać z możliwości udostępnianych
przez narzędzie Dalvik Debug Monitor Server (DDMS) będące częścią Android SDK.
DDMS umożliwia symulowanie GPS na trzy różne sposoby: manualnie, za pomocą plików
GPX oraz za pomocą plików KML. GPX jest popularnym formatem umożliwiającym zapis
śladów z odbiorników GPS. Aby plik GPS był prawidłowo interpretowany przez DDMS,
powinien rozpoczynać się w następujący sposób:
<?xml version='1.0' encoding='UTF-8'?>
<gpx version="1.1" creator="JOSM GPX export"
xmlns="http://www.topografix.com/GPX/1/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1
http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.garmin.com">
<text>Garmin International</text>
</link>
<bounds minlat="49.783169" minlon="19.025838999999998"
maxlat="49.85122" maxlon="19.090384999999998" />
</metadata>
<trk>
<name>MapaMap_Bielsko-Biała</name>
<trkseg>
<trkpt lat="49.84760303981602" lon="19.026278983801603">
<time>2011-10-28T15:26:28Z</time>
<ele>366</ele>
</trkpt>
<trkpt lat="49.8477750364691" lon="19.027123963460326">
<time>2011-10-28T15:26:30Z</time>
<ele>365</ele>
</trkpt>
</trkseg>
</trk>
</gpx>
Ważnym
jest
podanie
przestrzeni
nazw
w
węźle
gpx
(xmlns="http://www.topografix.com/GPX/1/1") bez czego DDMS nie radzi
3
Laboratorium - Programowanie w technologii Android
sobie z prawidłowym odczytem danych.
UWAGA: (dotyczy niektórych wersji środowiska deweloperskiego) aby zapewnić
kompatybilność pomiędzy symulatorem GPS zawartym w DDMS, a emulatorem platformy
Android, należy ustawić anglosaskie ustawienia systemu operacyjnego.
Zadanie 1. (2 punkty)
Stwórz aplikację wyświetlającą następujące informacje na ekranie emulowanego urządzenia:
•
•
aktualną pozycję geograficzną
prędkość oraz kierunek poruszania
Zadanie 2. (1 punkt)
Pobierz ze strony http://www.openstreetmap.org/traces wybrane ślady GPX i za ich pomocą
przetestuj działanie programu. W razie potrzeby popraw pliki GPX wg wcześniejszych
instrukcji.
Zadanie 3. (2 punkty)
Uzupełnij aplikację o dodatkowe elementy graficznego interfejsu użytkownika umożliwiające
dodawanie pozycji geograficznych do zbioru użytkownika i wyświetlanie tekstowo odległości
oraz kierunku od użytkownika do najbliższego punktu ze zbioru.
Dodatkowe informacje
1. Dokumentacja interfejsu LocationListener:
http://developer.android.com/reference/android/location/LocationListener.html
2. Wykorzystanie DDMS: http://developer.android.com/tools/debugging/ddms.html
4

Podobne dokumenty