Automatische Wiederholung der Spracheingabe
Die Spracheingabe wird bei der Verwendung von AMAD über die Aktion AMAD Voice Control (Action Typ: Spracheingabe (Experimentell)) gesteuert. Dabei lassen sich zwei Modi auswählen
- UI Modus - ohne Benutzeroberfläche
- UI Modus - zeige Benutzeroberfläche
Ohne Benutzeroberfläche
Hier wird als einziges Signal zum Beginn der Spracheingabe ein Beep-Ton ausgegeben. Nach ca. 5 Sekunden ohne registrierte Eingabe erfolgt eine akustische Systemmeldung 'Ihre Eingabe wurde nicht verstanden'. (WORK IN PROGRESS)
Mit Benutzeroberfläche
Hier wird als Signal zum Beginn der Spracheingabe ein Beep-Ton ausgegeben und ein Popup-Fenster gezeigt. Nach ca. 5 Sekunden ohne registrierte Eingabe erfolgt ein weiterer Ton und das Popup-Fenster zeigt die Meldung 'Bitte sag es noch einmal'. Dummerweise verschwindet dieses Fenster nicht, sondern kann bisher nur durch Klicken des Buttons Wiederholung geschlossen werden. Mit Hilfe eines kleinen AutoMagic-Flows kann dies automatisiert werden.
Als Trigger dieses Flows wird der Start der betreffenden Activity verwendet (Trigger Typ: Activity gestartet). Als Parameter werden eingetragen
Package Name: com.google.android.googlequicksearchbox Klassen Name: *
Die erste Aktion setzt eine Zählvariable count</count> auf Null (Action Typ: Script)
count=0
Danach beginnt eine Schleife mit der zweiten Aktion, diese holt den Text aus dem aktiven Fenster (Action Typ: Steuere UI).
Als Script wird eingetragen:
text=getTextInActiveWindow()
Eine Bedingung prüft anschließend, ob die Variable text den String Bitte sag es enthält (Condition Typ: Expression)
Als Expression wird eingetragen
contains(text,"Bitte sag es")
Die Verzweigung Nein überspringt einen ganzen Block von Aktionen, es wird eine letzte Aktion innerhalb der Schleife ausgeführt (Aktion Typ: Steuere UI).
Als Script wird eingetragen:
sleep(2000)
Danach wird im Flow wieder die zweite Aktion angesprungen. Im Endeffekt prüft also AutoMagic alle 2 Sekunden auf das Vorhandensein des unerwünschten Popup-Fensters.
Der Block von Aktionen, der bei der Verzweigung Ja (erfüllte Bedingung) ausgeführt wird, setzt zunächst die Zählvariable count um eins hoch (Aktion Typ: Script)
count=count+1
Optional kann man hier eine weitere Aktion einbauen, mit der die Anzahl der Wiederholungen als Benachrichtigung auf den Bildschirm
ausgegeben wird (Aktion Typ: Benachrichtigung auf Bildschirm), z.B. als Text
Wiederholungsfenster {count}
Danach wird die eigentliche Aktion zum Wegklicken des störenden Fensters ausgeführt (Action Typ: Steuere UI), mit der Eintragung
click("Wiederholen")
Dieser Zweig wird danach wieder mit dem ersten Zweig zusammengeführt, indem im Flow wieder die zweite Aktion angesprungen wird.
Achtung: Mit der gegenwärtigen Fassung wird diese Schleife so lange durchlaufen, bis eine Spracheingabe registriert wurde oder die Automagic Spracheingabe abstürzt. Das ist u.a. daran erkennbar, dass im (anderen) Flow VoiceControl die Aktion AMAD Voice Control nach wie vor als aktiv angezeigt wird. Gegenwärtig ist als Abhilfe nur bekannt, den Automagic Service manuell zu stoppen und neu zu starten (WORK IN PROGRESS)