Christopher Mathes ASN-Tracker Dokumentation - Backend: Sensorik, Geräte-Informationen. Sensorik:

Ähnliche Dokumente
3. Erfassung und Verarbeitung von Sensordaten

Software-Entwicklung für Android und ios

11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Mobile App Development. - Einführung -

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

10. OLAPLINE-Anwendertreffen

Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden!!

Inhaltsverzeichnis. Apps für Android entwickeln

ZTE Blade V7 Lite. Ein Smartphone für alle neu definiert

Klausur Software-Entwicklung März 01

Smartphone Entwicklung mit Android und Java

Mobile App Development - Sensoren -

Naviki GPS-Anwendungsentwicklung für Mobiltelefone

Teil I Augmented Learning - Vortragender: Krischan Udelhoven. Teil II Android - Vortragender: Folker Hoffmann

JAVA Kommentieren mit Javadoc

Institut für Informatik und Angewandte Kognitionswissenschaften

Mobile Anwendungsentwicklung - Überblick über ios & Swift I -

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

1 Klassen und Objekte

Walkabout: Location Based Services mit Android und dem Google Phone

Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden!!

Praktische Informatik I Wintersemester 2005/2006 Abgabe: 23. November 2005

Alkoholsensor MQ135, Time-Delay, Mailbox und LCD

Grundlagen der OO- Programmierung in C#

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo

Sensoren in Apple Geräten. Minh Khoi Nguyen! Tobias Schaarschmidt! SG: MD13w1

TK-STAR Bike GPS TRACKER Handbuch Vorwort

Umsetzung einer Klassenkarte in einer Programmiersprache

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg

Grundlagen von Python

Funktionen in JavaScript

Projekt INF. Sensorerweiterung für 3D-Drucker. Hanna Bader, Alexandros Fouskas, Cedric Holeczek, Paul Nehlich und Robin Schweigert

Mobile App Development. - Einführung -

Seminar Multimediale Werkzeuge Sommersemester 2011

Shield HD Kamera Smart Control

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

DE - Deutsch. Bedienungsanleitung CS Instruments GmbH Service Software Dew Point Sensors

Literatur. Komponenten WS 2014/15 Teil 9/Annotations

(3) Button-Klick & Texteingabe

Einführung in die Programmierung für NF MI. Übung 07

1. Erfassung und Verarbeitung von Sensordaten

Thomas Künneth. Android 3. Apps entwickeln mit dem Android SDK. Galileo Press

Effiziente Java Programmierung

ZEUS X mobile Bedienungsanleitung

T3 Map Location. Den eigenen Standort mittels Google Maps auf TYPO3 WebSites anzeigen - inklusive Routenplaner. TYPO3 Modul für Google Maps

Nutzungsbedingungen zur XML-Schnittstelle von Citybike Wien

5.4 Klassen und Objekte

Scala. Abstrakte Elemente. Jevgeni Zelenkov. HM

ARCHOS bringt neue Smartphones im 18:9 Format ab 99 Euro mit 5,5, 5,7 und 6 Zoll großen, randlosen Displays

Standard SIM. Micro SIM Nano SIM

Einführung in die Programmierung 1

Mobile Application Development

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

INFOnline SZM Integration Guide Alternativlösung Messung hybrider APPs

EIBPORT 3 VPN SSL Nutzung mit OpenVPN-Client

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)

Methoden und Wrapperklassen

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

Einstieg in die Informatik mit Java

Fork Leitfaden. BibApp Android

Funktionen in JavaScript

Multimedia im Netz Wintersemester 2012/13

Einleitung... 9 Aufbau des Buchs Benötigte Software Webseite zum Buch... 13

signakom besser sicher

Durch Drücken der Taste D (Pfeil nach unten) an der JETIBOX rufen Sie das Menu des MUI-Sensors auf.

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Ergänzung zur Bedienungsanleitung: Wahl der Betriebsart mittels IO-Link-Schnittstelle. SAxxxx / / 2016

Objektorientierte Programmierung

Das etwas andere Smartphone

Stundensatzermittlung für Architekten und Ingenieurkonsulenten. Handbuch

Mit dieser App können ebooks im epub-format auf allen Smartphones und Tablets mit dem Android Betriebssystem ab Version 2.2 genutzt werden.

TK-STAR KFZ GPS TRACKER Handbuch

Acer Smartphones, Tablets und Sonstiges vom: 06. Januar Tel: Fax:

Produkte und Preise TERRA MOBILE

ONE SINGLE SENSOR FOR ALL SPORTS

Info B VL 11: Innere Klassen/Collections

Immobilien App. Facts

Apps in ArcGIS: Neuerungen. 18. Juni 2015

3 Klassen, Attribute, Methoden

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen.

Javakurs für Anfänger

Softwareentwicklung Lösungen zu Programmierung von Klassen mit BlueJ

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Computeranwendung und Programmierung (CuP)

LC100 (Level Controller 100) Überwachung von Füllständen

Mit dieser App können ebooks im epub-format auf allen Smartphones und Tablets mit dem Android Betriebssystem ab Version 2.2 genutzt werden.

Versionsupdate von V auf V We automate your success

Modell Bahn Verwaltung. Tutorial. Links. Min. Programm Version 0.65, März w w w. r f n e t. c h 1 / 11

Java Einführung Programmcode

Mit Unity 3D eine Augemented Reality-App auf ein ios-device spielen

Bedienungsanleitung für MEEM-Kabel-Desktop-App Mac

1 Weitergehende PHP-Funktionen

Gerätetreiber in Embedded Systems

RLE INTERNATIONAL Projektidee: Modulares Fahrzeugkonzept

Projekt AGB-10 Fremdprojektanalyse

Transkript:

Christopher Mathes ASN-Tracker Dokumentation - Backend: Sensorik, Geräte-Informationen Sensorik: Mit der Android-API 21 lassen sich (abzüglich der als deprecated markierten Sensoren insgesamt 18 Sensoren abfragen. Diese Sensoren werden unterteilt in drei Kategorien: Motion Sensors (Bewegungssensoren), Environmental Sensors (Umgebungssensoren) und Position Sensors (Positionssensoren). Ein wichtiger Bestandteil zur Sensorik ist der SensorManager. SensorManager: Diese Android-Klasse wird für den sensor service genutzt. Der Manager wird benötigt um neue Instanzen vom sensor service zu erstellen. Er dient dazu, die jeweiligen Sensoren mittels der vorgefertigten Methoden zu registrieren, deregistrieren durch zu Hilfenahme des SensorEventListener. Weitere damit verbundene Klassen sind: Sensor, SensorEvent und der SensorEventListener. Motion Sensors Sensor ID Erklärung Werte Einheit Accelerometer 1 Misst Beschleunigungskräfte in Relation zur Gravitationskraft des Android-Devices in alle drei Achsenrichtungen Gravity 9 Misst die Gravitationskraft des Android-Devices in alle drei Achsenrichtungen Gyroscope 4 Misst die Rotationsrate des Android-Devices in alle drei Achsenrichtungen GyroscopeUncalibrated 16 Gibt ähnlich dem Gyroscope Werte aller drei Achsenrichtungen zurück, hat jedoch zusätzlich drei weitere Rückgabewerte. Die Kalibrierung der Gyroscope-Daten wird jedoch nicht komplett durchgeführt. Dies kann von erfahreren Nutzern durch entsprechende Codierung selbst vorgenommen wurden LinearAcceleration 10 Misst die Beschleunigungskraft eines Android-Devices in alle drei Achsenrichtungen ohne Bezug zur Gravitationskraft StepCounter 19 Berechnet in Verbindung mit dem Sensor: Accelerometer wie häufig eine bestimmte (für das Zählen eines Schritts genügende) Bewegung des Android-Devices vorgenommen wurde 3 m/s² 3 m/s² 3 rad/s 6 rad/s 3 m/s² 1 #steps

StepDetection 18 Erkennt Schritte des Benutzers. In Verbindung mit dem Sensor: Accelerometer des Android- Devices RotationVector 11 Misst die Richtung der Orientierung durch Nutzung der Rotationsvektoren des Android- Devices (Nutzt das geomagnetische Feld) 1 --- 4 --- Position Sensors Sensor ID Erklärung Werte Einheit GameRotationVector 15 Misst ähnlich wie der RotationVector, mit dem Unterschied das er die Daten des geomagnetischen Feldes nicht berücksichtigt. Dieser Sensor findet beispielsweise Anwendung in Android-Spielen bei denen die Himmelsrichtung uninteressant ist. Durch dieses Vernachlässigen der geomagnetischen Feldwerte, kann man höhere Genauigkeit erreichen GeomagneticRotationVector 20 Misst ähnlich wie der RotationVector, mit dem Unterschied das er das Magnetometer benutzt anstatt des Gyroskops MagneticField 2 Misst das Geomagnetische Feld für alle drei Achsenrichtungen des Android-Devices MagneticFieldUncalibrated 14 Ähnlich den Rückgabewerten des Sensors: GyroscopeUncalibrated, gibt auch dieser Sensor sechs Werte zurück. Dieser Sensor kann von Entwicklern dazu benutzt werden, seinen eigenen Code für die genaue Kalibrierung der Magnetischen Feldwerte vorzunehmen Orientation 3 Misst die an Rotation vollbrachten Grad um alle drei Achsenrichtungen eines Android-Devices 3 --- 3 --- 3 µt 6 µt 3 Grad

Proximity 8 Misst die Entfernung eines Objekts in Bezug auf die Entfernung der Frontseite des Android-Devices 1 cm Environmental Sensors Sensor ID Erklärung Werte Einheit AmbientTemperature 13 Gibt die Umgebungstemperatur 1 Grad Celsius zurück Light 5 Misst die Umgebungshelligkeit 1 lx (Lux) Pressure 6 Gibt den Luftdruck zurück 1 hpa oder mbar RelativeHumidity 12 Misst die Luftfeuchtigkeit 1 % Des Weiteren gibt es den Sensor TYPE_TEMPERATURE welcher mit dem API level 14 als deprecated bezeichnet wurde sowie den Sensor TYPE_HEART_RATE, welcher für Google Wear Kleidung gedacht ist. GPS: Die implementierte GPS-Möglichkeit des ASN-Trackers nutzt eine String-Methode, welche als Getter fungiert und eine Methode ohne Rückgabewert, welche die GPS-Daten aktualisiert. Über einen LocationManager wird der SystemService LOCATION_SERVICE aufgerufen. Dieser Service ermöglicht es die Informationen Breitengrad (latitude), Längengrad (longitude) und die Genauigkeit der Messung (accuracy) herauszulesen. Zusätzlich zum LocationManager wird eine Variable locationmanagergps des Objekttyps Location genutzt, welche mit Hilfe des Funktionsaufrufs getlastknownlocation(locationmanager ) über den initialisierten LocationManager die drei Werte erfassen kann. Die genannte Methode kann mit zwei verschiedenen Parametern arbeiten. LocationManager.GPS_PROVIDER und LocationManager.NETWORK_PROVIDER. Um eine bessere Genauigkeit der Ermittlung von Breiten- und Längengrad zu erhalten und vor allem eine wesentlich schnellere Ermittlung der Daten, wird im Allgemeinen NETWORK_PROVIDER vorgezogen.

Geräte-Informationen: Die Geräte-Informationen, die über das zugehörige Fragment im Settings-Bereich der App ausgewählt werden können, werden untergliedert in vier Hauptkategorien. Diese sind: Device, System, Battery, Telephony. Außerdem enthalten die Geräte-Informationen eine Auflistung der einzelnen Sensoren mit Angabe des Herstellers, der Range (Reichweite/Genauigkeit) und dem entsprechenden Namen. Die Hauptkategorien enthalten Unterkategorien welche verschiedene Spezifikationen voneinander trennen. Nachfolgend eine genauere Auflistung der einzelnen Informationen. Kategorie Unterkategorie Information Erklärung Device Info Build number Device Build Nummer OS Version Android Version Model Device Modelnummer Device Device Modeltyp Product Device Produkttyp Manufacturer Hersteller (Device) SDK Android SDK-Version Display Res-X Auflösung () Res-Y Auflösung () Density Auflösung in (dots per inch) Size Displaygröße in Zoll Refresh-rate Bildwiederholungsrate System Processor Cores Anzahl CPU-Kerne CPU-Architecture CPU-Architektur Board Board-Modeltyp Kernel-Version Kernel-Versionsnummer Kernel-Architecture Kernel-Architekturtyp Min Minimale Taktfrequenz Max Maximale Taktfrequenz Memory Total Ram Maximaler Arbeitsspeicher Battery Battery Technology Batterietyp Temperature Temperatur in Grad Celsius Voltage Anzahl Volt Capacity Batteriekapazität in mah Sensors --- Vendor Hersteller Range Genauigkeit des Sensors Name Name des Sensors Telephony --- Name Anbieter der SIM-Karte

Auslesen einzelner Geräte-Informationen: Nach dem Öffnen des Fragments über den Settings-Bereich, werden die Geräte-Informationen angezeigt. Wie unter den folgenden Punkten i) bis v) beschrieben, lassen sich einige Informationen nur über spezielle Listener oder Methoden- und Konstruktoren-Aufrufe von vorgefertigten Android-Klassen ausgeben. i) Device Unterkategorie: Info Die Informationen der Unterkategorie Info werden gesammelt in einem Stringbuffer, umgewandelt zu einem String, übergeben. Die einzelnen Informationen werden per Methodenaufruf android.os.build.* abgerufen. Unterkategorie: Display Die Displayinformationen werden als String übergeben nach Initialisierung des SystemServices WINDOW_SERVICE der auf einer Variable des Objekttyps Display aufgerufen wird. Für die Angaben der Breite, Höhe sowie der Größe des Screens sind einfache mathematische Umformungen nötig. Für die Breite, Höhe sowie der Auflösung und der Größe des Screens wird zusätzlich der Methodenaufruf getmetrics(displaymetrics) benötigt. ii) System Unterkategorie: Processor Die Prozessorinformationen werden teilweise über einfache System-Calls abgegriffen (System.getProperty( gewünschte Information )). Die Anzahl an CPU- Kernen des Android-Devices lässt sich über die, zur Runtime auszuführenden Methode availableprocessors() ausgeben. Für die Bestimmung der minimalen und maximalen CPU-Frequenz in Megahertz, werden die eigens angefertigten Methoden cpuminfrequency() und cpumaxfrequency() aufgerufen. Diese Methoden nutzen einen Reader vom Objekttyp RandomAccessFile um die minimale und maximale CPU-Auslastung zu ermitteln. Unterkategorie: Memory Ähnlich der Einholung von Informationen bezüglich der minimalen/maximalen CPU- Frequenz, wird die Information zum Total RAM auch über ein Objekt des Typs RandomAccesFile über einen Reader eingeholt. Es erfolgt eine Umrechnung um die Ausgabe in eine entsprechende Einheit ausgeben zu können. iii) Battery Unterkategorie: Battery Zur Ermittlung der Informationen der Kategorie Battery wird ein BroadcastReceiver genutzt welcher auf den BatteryManager zugreift um Angaben der Technologieart der Batterie zu erlangen, sowie der Temperatur und der Voltanzahl. Die Batteriekapazität in milli-ampere-stunden erhält man über die genutzt Methode getbatterycapacity(). Diese nutzt die Java-Klasse die für PowerProfile erstellt wurde.

iv) Sensors Unterkategorie: --- Die Informationen zu den Sensoren des Android-Devices werden eingeholt indem eine Variable des Typs Sensor durch iteriert wird, durch die Liste aller verfügbaren Sensoren des jeweiligen Endgeräts. Pro Schleifendurchlauf wird vom jeweiligen Sensor, dessen Name, Hersteller und die Genauigkeit der Messung in eine StringBuffer-Variable geschrieben und im entsprechenden Fragment, geordnet untereinander aufgelistet. v) Telephony Unterkategorie: --- Den Provider der Sim-Karte des Android-Devices lässt sich mit dem Methodenaufruf getsimoperatorname() ermitteln. Diese Methode verlangt das Initialisieren eines TelephonyManagers, welcher den SystemService TELEPHONY_SERVICE nutzt.