Haupttitel der Präsentation

Slides:



Advertisements
Ähnliche Präsentationen
BMBF-Förderinitiative Einsatz und Nutzung drahtloser Kommunikation BMBF-Förderinitiative Einsatz und Nutzung drahtloser Kommunikation bmb+f GoeMobile:
Advertisements

Softwareentwicklung für Android
Systemverwaltung wie es Ihnen gefällt.
Kapselung , toString , equals , Java API
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Threads Richard Göbel.
Java: Grundlagen der Objektorientierung
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Sebastian Grahn Sebastian Kühn
3.1.4 Leser/Schreiber-Ausschluß (reader/writer exclusion)
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Treffen mit Siemens Siemens: Werner Ahrens Volkmar Morisse Projektgruppe: Ludger Lecke Christian Platta Florian Pepping Themen:
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Einfach verkettete Listen (OOP)
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Lommy® SAFE Individuelles Überwachen von Fahrzeugen und Gütern.
In dem Login-Bereich können lektorat.de-Kunden ihren Datensatz eigenständig pflegen und aktualisieren. Wie gelangen Sie in diesen Bereich? Der Zugang zum.
Ham EST Das Schwein Schmatz.. Fressen Beginnen wir.... mit einer Geschichte:
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
Test Netzwerke 1 Grundlagen.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Geometrische Netze Erstellung.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
RATEME 2.0 Pirmin Schürmann, Thomas Junghans, HSZ-T.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
verstehen planen bearbeiten
Objectives Verstehen was unterDelegate verstanden wird
RATEME Suchen und Bewerten von Ausgangsorten. Inhalt RateMe - Pirmin Schürmann, Thomas Junghans - Hochschule für Technik Zürich 2 Unser Ziel.
Klassen und Klassenstruktur
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
GPS-Schulung Karl Höflehner. Situation Immer mehr Gäste haben ein Gerät mit GPS- Funktionen und geben den Standort mittels.
© Zühlke 2013 Romano Roth Workshop 6 (ws6C) native Entwicklung für mobile Geräte Lektion 5-6: Mega CRM 25. Februar 2013 Folie 1 von 10.
Wien Fotos, Audio und Video Multimedia in Android.
Wien Oberflächengestaltung und Gestensteuerung Styles, ActionBar und Gestensteuerung.
Wohnungssuche Mobiles georeferenziertes Informationssystem am Beispiel der aktiven und passiven Wohnungssuche Michael Raber.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Für die Festsetzung der Registrierung-Fehler von Windows 8.2 müssen Sie entweder den Einsatz des manuellen Verfahrens zu machen, oder Sie können sogar.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Das Internet – Was ist das? Das Internet - ein Datenfresser?
Einweisung in die - Registrierung -.
Das Entwurfsmuster Model-View-Controller
Ausgangslage Bundesratsbeschluss vom 4. Juni 2010 «Erhöhung der Informationssicherheit» Für Outlook Web Access (OWA) heisst das:  sämtliche.
Papier und s/w war gestern …?
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
BE-Statistik-Datenbank des LFV Bayern e.V.
UntisMobile App + WebUntis
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Einführung in die Programmierung mit Java
Anleitung für Administratoren
Haupttitel der Präsentation
Haupttitel der Präsentation
Ich brauche eine Web-Seite vom Server im Internet
Präsentation der AMS Job APP durch das AMS Wien
Willkommen beim neuen PowerPoint
Willkommen beim neuen PowerPoint
1. Die rekursive Datenstruktur Liste 1
Willkommen beim neuen PowerPoint
Implementieren von Klassen
Backup iPhone, iPad oder iPod
 Präsentation transkript:

Haupttitel der Präsentation 16.09.2018 WIFI Bundesland

Vorteile von location based services (LBS) Sehr viele Android-Geräte sind per GPS oder zumindest per WLAN-Triangulation fähig, deren Position bestimmen bzw. bestimmen zu lassen Aufgrund der bekannten Position kann eine App unter Verwendung von lokal gespeicherten Daten, WebServices, … dem Benutzer für ihn vor Ort relevante/interessante Informationen zeigen Weg nach Hause per öffentlichen Verkehrsmittel Lokale, Tankstellen, … Freunde, die in der Nähe sind Und vieles mehr

LBS Grundlagen Mehrere technische Möglichkeiten, um ein Gerät zu orten GPS wenn ein Sensor im Gerät verbaut ist und Empfang der Satelliten möglich WLAN wenn Gerät ein WLAN-Modul eingebaut hat, kann es sämtliche WLANs (deren SSID öffentlich ist) „sehen“ per Datenbank am Google Server ist es Android dann möglich, die Kombination von WLAN-SSIDs zu filtern und aufgrund der Bezeichnungen und der WLAN-Stärke die Position ansatzweise zu bestimmen Sendemasten Über Triangulation der erreichbaren Sendemaste, kann Android die Position ebenfalls bestimmen

Grundlagen Location based services LocationManager - Zentrales Element für LBS Position bestimmen Bewegung verfolgen Herausfinden, welche Provider zur Verfügung stehen Näherungsalarm auslösen LocationProvider Hier werden die verschiedenen Technologien verwendet LocationListener Achtet auf Positionsveränderung

LocationManager instanzieren LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Für diese Instanzierung ist eine Berechtigung notwendig Es wird zwischen zwei Berechtigungen unterschieden android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION „Coarse“ bedeutet eine grobe Bestimmung der Position, „Fine“ eine deutlich genauere „ACCESS_FINE_LOCATION“ beinhaltet automatisch auch „COARSE“

Einsatz von LocationManager Es gibt drei verschiedene LocationProvider GPS_PROVIDER NETWORK_PROVIDER PASSIVE_PROVIDER Mit List<String> providers = lm.getProviders(true) erhält man eine Liste mit allen auf dem eingesetzten Gerät möglichen Providern Wenn man auf einen bestimmten Provider zugreifen möchte, kann man dies mit LocationProvider gps_prov = lm.getProvider(LocationManager.GPS_PROVIDER) tun

Zuletzt bekannten Standort feststellen Um den zuletzt bestimmten Standort des Systems abzurufen verwendet man den Befehl getLastKnownLocation(provider) Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER) Zugriffe auf die verschiedenen Eigenschaften von Location werden mit den jeweiligen getXY() durchgeführt double lat=loc.getLatitude() double lng=loc.getLongitude()

Aktuellen Standort bestimmen Um den aktuellen Standort regelmäßig zu aktualisieren wird ein LocationListener eingesetzt LocationListener meinListener = new LocationListener() Dieser enthält Handler für Events wie locationChanged(), providerEnabled() und ähnliches Somit kann mit LocationListener auf Veränderungen des Standorts und auch auf Veränderungen von Providern (aufgedreht/abgedreht) reagiert werden Um den LocationListener einzusetzen verwendet man den Befehl lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,zeit,distanz,loc_listener) Falls keine Updates mehr stattfinden sollen lm.removeUpdates(loc_listener);

LocationListener loc_listener=new LocationListener() { @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) { } public void onProviderEnabled(String arg0) { public void onProviderDisabled(String arg0) { public void onLocationChanged(Location arg0) { //Location hat sich geändert

Innerhalb LocationListener onLocationChanged() { StringBuilder sb=new StringBuilder(); sb.append("Location ist "); sb.append("Lat: "+loc.getLatitude()); sb.append(" Long:"+loc.getLongitude()); Toast.makeText(getApplicationContext(), sb.toString(), Toast.LENGTH_SHORT).show(); } Finden der „besten Location“ http://developer.android.com/guide/topics/location/strategies.html

LocationManager als Beobachter Kann verwendet werden um zu beobachten, ob eine Location in die Nähe kommt lm.addProximityAlert(40, 40, 5, -1, intent); Zuerst Koordination, dann Radius (Meter), dann wie lange (-1 ist immer) intent ist ein PendingIntent PendingIntent intent= PendingIntent.getActivity(this, 0, new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://www.wifiwien.at")),0);

Google-Maps Google-Maps NICHT Teil von Android Registrierung API-Key notwendig Gehört zu Google API Im Manifest muss die Ergänzung <uses-library android:name=„com.google.android.maps“/> stehen Für Abfragen von Koordinaten <> Adressen ist die Berechtigung android.permission.INTERNET notwendig Koordinaten von Adresse -> forward geocoding Adresse von Koordinaten -> reverse geocoding

Google Maps - Geocoder Instanzieren von Geocoder Geocoder coder = new Geocoder(getApplicationContext(), Locale.getDefault()) Forward geocoding List<Address> ergebnis = coder.getFromLocationName(adresse, max_anzahl) Reverse geocoding List<Address> adressen=null; adressen=gc.getFromLocation(lat,long,max_anzahl); Address ist eine Klasse zum Speichern von Adressen

Google Maps – MapView und MapActivity 1/3 MapView zeigt eine Google Map an MapActivity ist eine Subklasse von Aktivität und notwendig, wenn ein MapView eingesetzt werden soll MapController sind die Standard-Bedienelemente von MapViews Overlay kann über eine Map gelegt werden MyLocationOverlay – an der aktuellen Position ItemizedOverlays + OverlayItems – werden verwendet um Markierungen auf der Karte darzustellen

Google Maps – MapView und MapActivity 2/3 public class MeineMapAct extends MapActivity { private MapView mapView; private MapController mapController; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map); mapView = (MapView)findViewById(R.id.map_view); mapController = mapView.getController(); } Im Layout gibt es da ein <com.google.android.maps.MapView> mit der id map_view

Google Maps – MapView und MapActivity 3/3 Eigenschaften, wie welche Sicht die MapView haben soll, werden über getXY() und setXY() gesetzt bzw. ausgelesen mapView.setTraffic(true); mapView.setBuiltInZoomControls(true); GeoPoint mitte = mapView.getMapCenter(); Der MapController (mapView.getController()) ebenfalls mapController.setCenter(new GeoPoint(40,40)); mapController.setZoom(15); //von 1-21 mapController.animateTo(new GeoPoint(0,0));

Overlays Werden in Schichten (layers) aufgetragen und dargestellt Vererben der Klasse Overlay, überschreiben von draw() public class MeinOverlay extends Overlay { @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { Projection proj = mapView.getProjection(); //zeichnen der gewünschten Darstellung }

Demonstration LocationManager LocationListener ProximityAlert Google Maps

Üben Erstellen Sie eine Applikation, bei der in den Einstellungen gespeichert wird (mittels SharedPrefs gespeichert), welche Nummer benachrichtigt werden soll. Wenn die Applikation in die Nähe einer bestimmten Location kommt, wird eine SMS an die hinterlegte Nummer gesendet Wenn eine SMS mit der Nachricht „WO! BIST! DU!“ kommt, wird SMS mit aktuellem Standort an eine hinterlegte Nummer gesendet. Die SMS soll nicht in den „normalen“ SMS aufscheinen Erstellen Sie eine App die nach der Eingabe einer Adresse verlangt und diese Eingabe dann auf einer Google Maps-Karte darstellt. Zudem soll es einen Button [Wo bin ich] geben, dessen Betätigung den aktuellen Standort auf der gleichen Google Maps-Karte anzeigt. Erstellen Sie eine App, die aus einer lokalen Datenbank ihnen wichtige Orte ausliest und die auf einer Google Map darstellt

Zusammenfassung