An Implementation and Evaluation of WiFi Positioning Algorithms in Android Πανεπιστήμιο Κύπρου 2011 Προγραμματισμός Συστημάτων ΕΠΛ371 Γιώργος Κωνσταντίνου Μάριος Κωνσταντινίδης Σιλουανός Νικολάου
Περιεχόμενα 1)Βασικά στοιχεία 2)Δυνατότητες με χρήση βιβλιοθηκών WiFi GPS Google Maps SQLite 3)Η εφαρμογή Σκοπός Αλγόριθμοι Αξιολόγηση Επίδειξη EPL371 Systems Programming- Department of Computer Science 2
The key point “Android is an environment where the biggest limitation is your imagination” EPL371 Systems Programming- Department of Computer Science 3
The main entry point AndroidManifest.xml The Basics EPL371 Systems Programming- Department of Computer Science 4
The Basics(Συνέχεια) Procedural vs Declarative Java Swing xml EPL371 Systems Programming- Department of Computer Science 5
Δυνατότητες με την χρήση βιβλιοθηκών Οι βιβλιοθήκες στον προγραμματισμό του Android δίνουν την δυνατότητα πρόσβασης σε λειτουργίες και υπηρεσίες της κινητής συσκευής. – Βιβλιοθήκες για χρήση GPS, WiFi, Google Maps EPL371 Systems Programming- Department of Computer Science 6
WiFi import android.net EPL371 Systems Programming- Department of Computer Science 7 WiFiReceiver Έλεγχος για απενεργοποίηση Αρχικοποίηση WifiManager
WiFi Scan EPL371 Systems Programming- Department of Computer Science 8
GPS EPL371 Systems Programming- Department of Computer Science 9 import android.location Κριτήρια (accuracy, power requirement, altitude …) Δήλωση/Αρχικοποιήση του GPS
GPS(Συνέχεια) Ενεργοποίηση του GPS Ενημέρωση/Απενεργοποίηση συντεταγμένων (Updates) EPL371 Systems Programming- Department of Computer Science 10
Google Maps Google Map Api Key Registering the MD5 fingerprint and get the Maps Api Key for the application Embed the Api Key in the xml or directly to the code to have reference in each MapView EPL371 Systems Programming- Department of Computer Science 11 Επιπλέον δήλωση στο AndroidManifest.xml Δυνατότητες για προσαρμογή των Google Maps MapView, Overlay …
Google Maps in action EPL371 Systems Programming- Department of Computer Science 12
Άλλες δυνατότητες Χρήση Βάσης Δεδομένων στην κινητή συσκευή Android. Μπορούμε εύκολα, σε οποιαδήποτε εφαρμογή να ενσωματώσουμε Β.Δ μέσω της βιβλιοθήκης SQLite. Όλα τα περιεχόμενα για κάθε χρήση της SQLite αποθηκεύονται στο τηλέφωνο στον φάκελο /data/data/ /databases /sqlite/package-summary.html /sqlite/package-summary.html EPL371 Systems Programming- Department of Computer Science 13
Η εφαρμογή μας Applications RSS Logger.apk Radio Map Distribution Server Find Me.apk EPL371 Systems Programming- Department of Computer Science 14
rss-log.txt sample EPL371 Systems Programming- Department of Computer Science 15 RSS Logger Scanned Results Received Signal Strength
Radio Map Sample EPL371 Systems Programming- Department of Computer Science 16 Server convert RSS-Logs To radio-map
Αλγόριθμοι Nearest Neighbor algorithm Υπολογισμός βάσει της Ευκλείδιας απόστασης μεταξύ των RSS τιμών κάθε geolocation του Radio Map και των τιμών της τελευταίας σάρωσης. e.g. D i =sqrt((RSSg i -RSS i ) 2 +…) Οι συντεταγμένες είναι το geolocation του μικρότερου D i EPL371 Systems Programming- Department of Computer Science 17 Probabilistic algorithm Βρίσκουμε όλα τα p’s, για κάθε p κάνουμε το πιο κάτω – e.g. P i =exp(-(RSSg j -RSS j ) 2 /σ 2 ) x … Πολλαπλασιάζουμε όλα τα p j ’s για να βρούμε το P i. Οι συντεταγμένες είναι το geolocation του μεγαλύτερου P i
Find Me in real action Χρήση των προηγούμενων αλγορίθμων για την εύρεση της υφιστάμενης θέσης. Plot to google maps Estimated positioning error με ένδειξη στους χάρτες. Let’s try! (and hope don’t catch{Exception e}) ΕΠΛ371 Προγραμματισμός Συστημάτων18
Positioning error (distanceBetween) Γραφικές Παραστάσεις Αξιολόγηση Αλγορίθμων EPL371 Systems Programming- Department of Computer Science 19 PowerTutor screenshots
Βιβλιογραφία element.html element.html EPL371 Systems Programming- Department of Computer Science 20