Automatische Wiederholung der Spracheingabe: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
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 == | |||
[[Datei:AutoSprachWdh.jpg|links|mini|480x480px]] | |||
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 | Als Trigger dieses Flows wird der Start der betreffenden Activity verwendet (Trigger Typ: Activity gestartet). Als Parameter werden eingetragen | ||
Als | Package Name: com.google.android.googlequicksearchbox | ||
Klassen Name: * | |||
Die erste Aktion setzt eine Zählvariable <code>count</code> auf Null (Action Typ: Script) | |||
Die erste Aktion holt den Text aus dem aktiven Fenster (Action Typ: Steuere UI). | 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: | Als Script wird eingetragen: | ||
text=getTextInActiveWindow() | text=getTextInActiveWindow() | ||
Eine Bedingung prüft anschließend, ob die Variable ''text'' den String ''Bitte sag es'' enthält (Condition Typ: Expression) | Eine Bedingung prüft anschließend, ob die Variable ''text'' den String ''Bitte sag es'' enthält (Condition Typ: Expression) | ||
Als Expression wird eingetragen | Als Expression wird eingetragen | ||
contains(text,"Bitte sag es") | 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} | |||
(Im Bild sind hier weitere Verzweigungen je nach Anzahl der Wiederholungen eingebaut WORK IN PROGRESS). | |||
Danach wird die eigentliche Aktion zum Wegklicken des störenden Fensters ausgeführt (Action Typ: Steuere UI), mit der Eintragung | |||
click("Wiederholen") | click("Wiederholen") | ||
Dieser Zweig wird danach wieder mit dem ersten Zweig zusammengeführt, indem im Flow wieder die letzte Aktion angesprungen wird, nämlich die Verzögerung von 2 Sekunden. | |||
'''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) | |||
[[Kategorie:AutoMagic]] | [[Kategorie:AutoMagic]] |
Aktuelle Version vom 6. Juni 2020, 18:45 Uhr
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
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}
(Im Bild sind hier weitere Verzweigungen je nach Anzahl der Wiederholungen eingebaut WORK IN PROGRESS).
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 letzte Aktion angesprungen wird, nämlich die Verzögerung von 2 Sekunden.
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)