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