[Lollipop] Llama "Addon": Wechsel zwischen Priomodus (lautlos) + Alle (laut) + Vibra

Mugendon

Mugendon

Stamm-User
134
(Kleiner Hinweis vorab: Dieser Workaround scheint ab Android 5.1 nicht mehr zu funktionieren :()

Da Llama bisher nicht gut mit den neuen Lollipop Lautstärkeeinstellungen für Benachrichtungen und Klingeltlöne zurecht kommt (der Wechsel zum Priomodus ("Wichtig") klappt noch, ein Wechsel zurück zu "Alle" also dem lauten Modus klappt jedoch nicht mehr) und der Entwickler derzeit keine Lust auf Lollipop hat, habe ich eine kleine App geschrieben, die hier helfen soll.

Die App tut nichts weiter außer genau den Wechsel zwischen Priomodus und Normalmodus zu vollziehen (Wieso das für den Lautlosmodus nötig ist, erfahrt ihr HIER). Wichtig ist, dass die App sich über sogenannte Intents fernsteuern lässt und damit auch über Llama. Ihr müsst nun nur noch eure Profile entsprechend anpassen und schon könnt ihr wieder zwischen Laut/Vibration/Lautlos per Llama wechseln.
Edit: Mit der aktuellen Version ist auch ein direkter Wechsel in den Vibrationsmodus möglich (d.h. Alle + Klingel/Benachrichtungston aus + Vibration aktiviert)
Edit2: Wie vergilbt an anderer Stelle geschrieben hat, könnt ihr mittlerweile auch das xposed Modul "TrueSilentMode" benutzen. Dann funktionieren die Llama Profile wieder ohne dieses Addon. Allerdings solltet ihr bei den Profilen aufpassen, dass ihr dort wieder die Lautstärkeprofile ebenfalls ändert und nicht nur die Lautstärke.

Eure Llama Profile müsst ihr nun so anpassen, dass Llama nicht mehr selbstständig am Klingelmodus rumstellt, sondern nur noch die Lautstärke anpasst. Den Wechsel des Klingelmodus löst ihr stattdessen einfach über ein Intent-Ereignis aus, welches meine App ansteuert (Erläuterung dazu folgt weiter unten). Für die typische Konfiguration würde das so aussehen:

Profile

Grundsätzlich braucht ihr keine Llama Profile mehr, es sei denn, ihr wollt auch die Medienlautstärke anpassen oder bei laut immer eine ganz bestimmte Klingeltonlautstärke wiederherstellen.
Ich mache trotzdem mal ein Beispiel mit 2 Llama Profilen, da ich gerne auch die Medienlautstärke mit anpasse ;)

- Profil Laut: Alle Lautstärken auf einen für euch passenden Wert stellen
- Profil Lautlos: Klingeltonlautstärke nicht verändern (also Haken bei der Option entfernen) aber ggf. z.B. Medienlautstärke auf 0

Regeln

Wenn ihr nun eine Regel erstellt und diese den Klingelmodus manipulieren soll, müsst ihr folgendes tun (beachtet, dass beim Erstellen der Ereignisse für die entsprechende Regel zunächst der Intent ausgeführt und erst dann das (optionale) Llama Lautstärke Profil aktiviert wird. Ansonsten kann es passieren, dass die Lautstärke nicht korrekt umgestellt wird):

Laut
- Llama-Regel feuert ein Ereignis, bei dem der Normalmodus aktiviert wird (switch = 1)
- (optional) Llama-Profil Laut aktivieren

Lautlos
- Llama-Regel feuert ein Ereignis, bei dem der Priomodus aktiviert wird (switch = 0)
- (optional) Llama-Profil Lautlos aktivieren

Vibration
- Llama-Regel feuert ein Ereignis, bei dem der Vibrationsmodus aktiviert wird (switch = 2)
- (optional) Llama-Profil Lautlos aktivieren

Llama Intent Konfiguration

Nachdem nun also klar ist, wie die Regeln und Profile konfiguriert werden müssen, folgt nun die Erklärung, wie ihr meine App mit einem Llama Ereignis fernsteuert und so den Klingelmodus anpassen könnt:

  1. App aus Anhang runterladen und per Dateimanager installieren
  2. App einmalig starten und prüfen, ob ihr über die Buttons den Klingeltonmodus verändern könnt (bei Off sollte ein Stern angezeigt werden, bei On nicht und bei Vibration das Vibrationsbild ohne Stern)
  3. In Llama eine neue Regel erstellen oder eine bereits vorhandene um ein neues Ereignis ergänzen
  4. Als Typ für das Ereignis wählt ihr Android-intent aus
  5. Dort nehmt ihr folgende Einstellungen vor:
    • Voreinstellung: Eigenes Android-Intent
    • Intent-Sende-Modus: Broadcast
    • Ereignis: intent.ringer.switch
    • Bei Extras klickt ihr auf "Neue Extra-Reihe hinzufügen" und gebt folgendes ein:
  1. Schlüssel: switch (auf Kleinschreibung achten)
  2. Datentyp: int
  3. Wert: 0 (für Priomodus "wichtig") oder 1 (für Normalmodus "alle") oder 2 (für Normalmodus "alle" mit Vibration statt Klingelton)
Das wars auch schon. Am besten prüft ihr jetzt noch über "Ereignis testen" ob der Intent korrekt von Llama abgesetzt wird und somit meine App den Klingelmodus entsprechend anpasst.

INFO: Der Priomodus in Android sollte so konfiguriert sein, dass sämtliche "wichtigen Unterbrechungen" deaktiviert sind (Hintergrund).

Die App hat übrigens keine negativen Auswirkungen auf den Akkuverbrauch, da kein Service oder so etwas im Hintergrund läuft. Sie tritt nur genau dann in Aktion, wenn das Android System den entsprechenden Intent von Llama bekommt.

Ich habe die App unter stock Android 5.0.1 auf einem Nexus 6 getestet. Falls ihr Probleme haben solltet, schreibt mit welchem Gerät und Android ihr unterwegs seid.
Falls alles läuft, wäre auch eine kurze Rückemeldung nett ;)

Abschließend noch zwei Screens zur Konfiguration in Llama:
(WICHTIG: Die Screens stammen von der Anleitung zu meiner anderen Llama App, weshalb bei der Intent Konfiguration unter "Ereignis" etwas anderes steht als hier in der Anleitung. Ihr müsst den Intent intent.ringer.switch verwenden und nicht den, den ihr auf den Bildern seht.

Teil1:
GZOxeRm.png

Teil2:
uYIfuxO.png

Update 22.01.2015: Auf Version 1.1 aktualisiert, die nun auch den direkten Wechsel auf den Vibrationsmodus enthält.
 

Anhänge

  • RingerModeSwitch.apk
    260,3 KB · Aufrufe: 530
Zuletzt bearbeitet:
  • Danke
Reaktionen: Ky Mani, HorstGG, Chania und 2 andere
Hi Mugendon,
habe es mal so eingestellt und könnte funktionieren... Kann es leider nicht richtig testen, da ich derzeit im Urlaub bin. Aber manuell umschalten geht zumindest...

Eine Frage nur: du schreibst, erst intent dann profil... Als in einer Regel, nur die Reihenfolge der Ereignisse beachten? Oder eigene regeln mit zeitlichem Ablauf?
 
vergilbt schrieb:
Eine Frage nur: du schreibst, erst intent dann profil... Als in einer Regel, nur die Reihenfolge der Ereignisse beachten? Oder eigene regeln mit zeitlichem Ablauf?

Alles in einer Regel und die Reihenfolge der Ereignisse beachten. Habe z.B. eine Regel "Lautlos in der Nacht", welche die Bedingung von 22-8 Uhr hat und dann zwei Ereignisse auslöst: Erst den Intent und dann das Profil auf lautlos stellt.
 
OK, verstanden... Wusste nicht, das llama mehrere Ereignisse in einer Regel auch numerisch abarbeitet

Also so:
 

Anhänge

  • uploadfromtaptalk1419882110199.png
    uploadfromtaptalk1419882110199.png
    55,1 KB · Aufrufe: 629
Jupp so sollte es klappen :)
 
Wie gesagt, in der Theorie klappt es auch... Da geht beim testen der stern an und aus

Vielen Dank.
 
@Mugendon
Mittlerweile bieten ja die ersten custom ROM wieder Profile an...Kann man deinen switch auch daran koppeln?
 
Kannst du das näher erläutern? Was genau machen diese Profile bei den roms und was soll mein switch dann wann durch was ausgelöst tun :)
 
habe gerade eben keine ROM mit Profilen drauf. gab es aber auch schon bei kk...
Klassische Profile wie lautlos, normal, Auto usw.
Konnte man dich über die Power taste auswählen und einstellen...

Ist jetzt z.B. in cm12 mit drin...

Und tun soll dein switch genau so umschalten wie bisher
 
Ach so. Ja dann nehme ich an, dass der einfach die rom Profile nutzt, sofern die die Standard Werte überschrieben haben.
 
Bei den Standard Profilen gibt es ja nur alle, keine,prio

Was wäre, wenn bei einer custom ROM noch zusätzliche Profile einstellbar sind?

Muss man wahrscheinlich dann mal im Ernstfall proben
 
Also ich nutze die ganz normalen Profile, die der Android Audiomanager vorgibt. Das heißt ich nutze "Normal" und "Silent". Wobei in Lollipop aus "Silent" der Priomodus wird und aus "Normal" der Allemodus (daher wundert es mich eigentlich auch, dass Llama das nicht direkt hinbekommt. Habe dem Entwickler dazu auch mal ne Mail geschrieben, aber noch keine Antwort bekommen).
Sofern sich die Custom Rom an dem Android Audiomanager orientiert, sollte also alles klappen.

Derzeit fehlt noch der Modus "Vibrate", aber den könnte ich eventuell noch zusätzlich einbauen (mit switchwert 2 oder so), falls eine Custom Rom daraus direkt den Vibrationsmodus macht.
 
  • Danke
Reaktionen: vergilbt
Wäre super, da ich ein Custom Rom habe, wo es vibrieren gibt.
Llama kann es aber natürlich nicht umschalten.
Ich wäre dir wirklich sehr dankbar. :)
 
So, habe das Ganze mal umgesetzt und den Eingangspost entsprechend aktualisiert. Funktioniert sogar mit der Stock ROM (kann man gut mit der App im AppDrawer testen). Für Vibration sollte der switch also nun die 2 bekommen.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: choppy
Geht pipifein, vielen Dank. :)
 
  • Danke
Reaktionen: Mugendon
Bestens, danke fürs Feedback :) Startpost ist jetzt auch editiert.
 
Zuletzt bearbeitet:
Was ist jetzt anders als bisher? Der hatte doch auch schon den switch auf vibration?
 
Bezogen auf den Post: Ich habe jetzt einfach noch vom Androidaudiomanager das Profil "Vibrate" hinzugefügt.
Bisher habe ich den Vibrationsmodus einfach nur dadurch erzeugt, dass ich über ein Llama Profil die Lautstärke manuell auf 0 gesetzt habe, was dann den Vibrationsmodus aktiviert hat.

Ach ja und natürlich dein Post noch ;)
 
Funktioniert auf dem S4 mit CM12 wunderbar, vielen Dank!
Gruß
Tefracky
 
Hat bei mir unter CM12 gut funktioniert. Bei CM12.1 habe ich es mit der ersten offiziellen Nightly nicht mehr benötigt, da die Systemprofile den Lautlosmodus dann korrekt setzen konnten. Seit der Nightly vom 21.04 lässt sich der Modus “Wichtig“ aber weder mit den Systemprofilen noch mit dieser App einstellen. Der Vibrationsmodus funktioniert. Kann das jemand bestätigen? Liegt es an den Nightlys?
 

Ähnliche Themen

M
Antworten
7
Aufrufe
1.904
Johan
J
J
  • Johan
Antworten
2
Aufrufe
1.867
Johan
J
J
Antworten
2
Aufrufe
7.671
Gerimo
Gerimo
Zurück
Oben Unten