Audio Mode Switcher für Android vorgestellt

audio_mode_switcher[Gastbeitrag] Wer kennt die Situation nicht, wenn das Telefon zu ungünstigsten Zeitpunkten läutet? Man sitzt z.B. im Hörsaal, jeder ist konzentriert – und plötzlich läutet das Handy unangenehm laut, so dass man alle Blicke auf sich zieht. Als vergesslicher Mensch musste ich viele solcher Situationen erleben, nur weil ich nicht daran gedacht hatte auf lautlos zu stellen. Das führte dazu, dass ich irgendwann sicherheitshalber mein Handy nur noch auf stumm geschaltet hatte und praktisch unerreichbar wurde.

So entstand die Idee einer simplen kleinen App, die Audio-Profile für mich verwaltet. Da ich schon seit langem einen Blick in die Welt der App-Programmierung werfen wollte, habe ich mich dazu entschieden die App Audio Mode Switcher zu entwickeln.

Mein Ziel war eine übersichtliche App, die anhand von verschiedenen Gesichtspunkten die Lautstärke auf laut, vibrieren oder leise stellt. Um den Überblick zu behalten erscheint bei jeder Lautstärkenumschaltung eine Benachrichtigung (kann deaktiviert werden).

Die App stellt drei einfache Möglichkeiten zur Verfügung die Lautstärke einzustellen:

  • zeitlich wiederkehrende Lautstärkeeinstellungen
  • bei Terminen im Kalender
  • je nach momentanen Aufenthaltsort

Zeitlich wiederkehrende Lautstärkeeinstellungen

Die einfachste Möglichkeit ist wöchentlich wiederkehrende Zeitpunkte (ähnlich wie beim Wecker) zu definieren. Jedes dieser Profile kann deaktiviert und aktiviert werden. Ich persönlich verwende diese Funktion um abends auf lautlos zu stellen und morgens wieder auf laut. Am Wochenende sind die Schlafenszeiten natürlich etwas anders.

screenshot_schedule 3

Aus Entwicklersicht war dieses Feature relativ einfach mit dem AlarmManager von Android zu realisieren. Damit ist es möglich eine Funktion zu einem zukünftigen Zeitpunkt auszuführen.

Kalender-basiertes Umschalten

Die nächste Möglichkeit ist bei gewissen Terminen im Kalender die Lautstärke anzupassen. Die Termine können aufgrund des zugeordneten Kalenders und/oder nach Wörtern die im Titel vorkommen ausgewählt werden. So kann z.B. eingestellt werden, dass beim Start aller Termine des Uni-Kalenders und bei allen Terminen mit dem Wort Meeting im Titel auf lautlos gestellt wird.

Beim Ende des Termins, kann entweder nichts unternommen werden, auf die vorher eingestellte Lautstärke oder ein vordefiniertes Profil (laut, vibrieren oder leise) umgestellt werden.

screenshot_calendar 2

Leider gibt es keine Möglichkeit vom System informiert zu werden, wenn ein Termin startet. Allerdings kann auf die Termindatenbank der Kalender zugegriffen werden. Daher realisiere ich die Synchronisation mit dem Kalender so, dass im Hintergrund nach Terminen, die einer eingestellten Bedingung entsprechen, gesucht wird.

Ortsbezogenes Umschalten

Die nächste Option ist das Einstellen der Lautstärke je nach momentanen Aufenthaltsort z.B. immer wenn man in der Arbeit ist soll das lautlos-Profil eingestellt werden und immer wenn man zu Hause ist soll auf laut gestellt werden. Dazu kann per Google Maps eine Position ausgewählt werden und der Benutzer gibt an auf welche Lautstärke beim Eintreffen und Verlassen eingestellt werden soll.

location_based 1

Ein Hintergrundservice wird vom System informiert, wenn sich die Position geändert hat. Daraufhin wird überprüft ob man sich in die Nähe eines definierten Standortes befindet und je nach dem wird wie gewünscht die Lautstärke angepasst. Hier war eine große Herausforderung, die Entfernungsgrenzwerte zu finden, bei denen umgeschaltet werden soll. So kam es z.B. anfänglich öfters vor, dass wenn man sich von der eingestellten Position entfernte, das Profil mehrmals hintereinander deaktiviert und wieder aktiviert wurde.

Des weiteren muss man bei solch einem Feature natürlich immer zwischen zeitnaher Erkennung einer Positionsänderung und Energieeffizienz abwiegen. Beim Testen auf verschiedenen Gerätemodellen konnte ich hier gravierende Unterschiede feststellen. Die Anzahl der Informationen über einen Änderung des Standortes und der Stromverbrauch variierten sehr stark von Gerät zu Gerät.

Zusätzlich fiel auf, dass der Stromverbrauch vor allem in städtischen Gebieten mit aktiviertem GPS hoch war. Zu dieser Thematik fand ich sehr hilfreiche Tipps in einem Paper. Die vorgeschlagenen Methoden sind so ebenso einfach wie wirkungsvoll – z.B. GPS nicht verwenden, wenn die Messdaten von den Netzwerkprovidern ohnehin sehr genau sind.

Obwohl ich sehr viel Zeit in das positionsabhängige Umschalten investiert habe, gibt es hier bestimmt noch Optimierungsmöglichkeiten. Daher würde ich mich natürlich sehr über Feedback freuen um anhand von praktischen Erfahrungen auf verschiedenen Geräten die Positionsbestimmung zu verbessern.

Android App-Programmierung Fazit

Nachdem ich mich in letzter Zeit vor allem mit hardwarenaher Programmierung (v.a. Assembler) beschäftigt habe, war es wie Balsam für meine Softwareentwicklerseele mit einer so komfortablen Sprache wie Java zu programmieren. Es ist relativ leicht, sich in der Welt der App Programmierung zu Recht zu finden, da die Entwicklungsumgebungen und APIs von Android meiner Meinung nach sehr gut gelungen sind.

Sehr hilfreich ist auch die große Android Developer Community. Zu beinahe jedem Problem auf das ich gestoßen bin, gab es in diversen Foren bereits die passende Antwort. Ich kann jedem Programmierinteressierten empfehlen, sich mit der Programmierung von Apps zu beschäftigen – es macht einfach Spaß!

Es würde mich sehr freuen, wenn ihr Audio Mode Switcher ausprobiert und mir konstruktives Feedback gebt!

Audio Mode Switcher
Preis: Kostenlos+

Über die Autorin: Andrea Höller befindet sich momentan am Ende ihres Telematik-Studiums (Kombination aus Informatik und Elektrotechnik) an der TU Graz. Im Rahmen ihres Studiums hat sie sich vor allem mit Sicherheit in der IT und System-on-Chip Design beschäftigt. Nebenbei arbeitete sie bei Infineon an der Entwicklung von RFID-Chips.

Teilen

Hinterlasse deine Meinung
Du kannst auch als Gast kommentieren (Anleitung). DISQUS respektiert „Do Not Track“ und bietet einen Datenschutz-Modus an. Informationen zum Datenschutz auf mobiFlip.de findest du hier.