Dies ist eine Anleitung, wie Sie jedes gerootete Gerät dazu zwingen können, die OK-Google-Hotword-Erkennung zu aktivieren, auch wenn seine Hardware diese Funktion nicht unterstützt!
Als das Moto
Später in Google Nexus-Geräten eingeführt und jetzt in vielen Flaggschiff-Geräten verfügbar, ist die Hotword-Erkennungsfunktion eine Ziemlich tolle Funktion, wenn Sie eine schnelle Google-Suche durchführen müssen, ohne mit dem Gerät herumfummeln zu müssen Hände. Dies kann besonders nützlich sein, wenn Sie Ihr Telefon in Ihrem Auto angedockt haben und die Navigation zu einem bestimmten Ziel starten müssen. Es ist bei weitem sicherer, Ihre Stimme zum Starten der Google Maps-Navigation zu verwenden als jede andere Alternative.
Um jederzeit „OK Google“-Befehle auslösen zu können, ist leider ein spezieller Spracherkennungschip mit geringem Stromverbrauch in Ihrem Gerät erforderlich. Obwohl diese Hardware in vielen Geräten vorhanden ist, ist sie nicht in allen vorhanden. Selbst leistungsstarke, teure Flaggschiffe wie das Huawei Mate 9 bieten dieses Angebot nicht. Für Geräte wie meines bietet Google die Möglichkeit, „OK Google“-Sprachbefehle auszulösen, während der Bildschirm eingeschaltet ist oder das Gerät an ein Ladegerät angeschlossen ist.
Vor ein paar Jahren gab es eine Anwendung mit dem Namen Öffnen Sie jetzt Mic+ für Google mit der Option, einen Hintergrunddienst zu aktivieren, der jederzeit auf Sprachbefehle wartet. Leider forderte Google den Entwickler auf, die Nutzung des Dienstes einzustellen, und der Entwickler hatte keine Zeit mehr, diese App zu unterstützen, sodass sie auf der Strecke blieb. Die einzige vorhandene Option ist die Verwendung AutoVoice, ein beliebtes Tasker-Plugin, aber dafür müssen Sie über ausreichende Tasker-Kenntnisse verfügen, um Profile einzurichten, die auf bestimmte Befehle reagieren.
Für diejenigen unter Ihnen, die sich lieber auf den Spracherkennungsdienst von Google verlassen möchten, habe ich eine Problemumgehung gefunden Aktiviert die Hotword-Erkennung „OK Google“ auf jedem gerooteten Gerät, auch wenn dessen Hardware dies nicht unterstützt. Es gibt zwei Vorbehalte zu diesem Trick, den wir weiter unten im Detail besprechen werden.
„OK Google“-Hotword-Erkennung auf jedem Gerät
Die Frage, die ich mir stellte, als ich über eine Lösung für dieses Problem nachdachte, war:
Wie kann ich mein Gerät dazu verleiten, auf meinen Befehl hin den Hotword-Erkennungsdienst zu aktivieren?
Da mein aktuelles Telefon die Hotword-Erkennung bei ausgeschaltetem Bildschirm nicht nativ unterstützt, ist die einzige Voraussetzung dafür, dass dies funktioniert, wenn der Bildschirm meines Telefons eingeschaltet ist oder wenn es aufgeladen wird. Da es mein Ziel ist, die Hotword-Erkennung jederzeit zu ermöglichen (auch bei ausgeschaltetem Bildschirm), würde ein eingeschalteter Bildschirm diesen Zweck natürlich zunichte machen. Mein Gerät an der Steckdose lassen zu müssen, wäre in meinem Unterfangen ebenfalls sinnlos, aber was wäre, wenn ich könnte Trick Kann mein Gerät eine dieser beiden Bedingungen erfüllen?
Glücklicherweise ist dies mit ein wenig Root-Magie und einem geschickten Einsatz von Debug-Befehlen durchaus möglich! Mit einem Debug-Shell-Befehl, der zu Testzwecken gedacht ist, kann ich das tun Ich täusche mein Gerät vor, es würde aufgeladen werden obwohl es von der Stromquelle getrennt ist. Der Befehl, den wir für unsere Zwecke nutzen werden, ist dumpsys battery
, deren Parameter Sie in nachlesen können dieser Blogbeitrag von Roman Mazur.
Hinweis: Dieser Trick ist Vollkommen sicher aufführen. Wie bereits erwähnt, täuscht dieser Befehl Ihr Gerät nur vor und lässt es glauben, dass es aufgeladen wird. Es wird NICHT tatsächlich aufgeladen, auch wenn Anwendungen zur Batterieüberwachung etwas anderes sagen (dies liegt daran, dass diese Apps falsche Informationen erhalten).
Besonders hervorzuheben ist die dumpsys battery set
Befehl, der Parameter akzeptiert, um festzulegen, ob das Gerät derzeit über AC, USB oder kabelloses Laden aufgeladen wird oder nicht. Wenn wir beispielsweise eine Root-Shell in Android öffnen und den folgenden Befehl eingeben, wird der Das Gerät geht davon aus, dass es über Wechselstrom aufgeladen wird.
su
dumpsys battery set ac 1
Durch Festlegen dieses Befehls (oder des Befehls für USB-/kabelloses Laden) können Sie dies nun tun Lösen Sie OK-Google-Befehle aus, während Ihr Bildschirm ausgeschaltet ist. Dies liegt daran, dass Ihr Gerät in jeder Hinsicht „aufgeladen“ wird und damit die Voraussetzungen für die Aktivierung des Hotword-Erkennungsdienstes von Google erfüllt.
Da es sich um einen Befehl handelt, der zum Debuggen gedacht ist (hauptsächlich für Entwickler zum Testen der Funktionalität unter unterschiedlichen Batteriebedingungen), weist er bei dieser Verwendung einige Nachteile auf. Insbesondere zwei Nachteile, auf die wir als nächstes eingehen werden. Der erste Nachteil ist eher trivial zu umgehen, das Gleiche gilt jedoch nicht für den zweiten Nachteil.
Nachteil Nr. 1 – Anzeige für gefrorene Batterie
Nach Eingabe eines Befehls „dumpsys Battery Set“ wird der BatteryManager-Dienst von Android dies tun Hören Sie sofort mit dem Sammeln auf weitere Daten zum Batteriezustand. Das bedeutet, dass das Android-System nicht mehr über Ihren Akkuladestand, Temperatur, Stromstärke, Spannung und Zustand berichtet. Sie werden stattdessen in dem Moment, in dem Sie den Befehl eingegeben haben, zeitlich „eingefroren“.
Diese Daten sind jedoch werden noch vom System erfasst auch wenn es für jede Anwendung zugänglich ist. Wenn Sie einen Überblick über den aktuellen Akkuladestand erhalten möchten, müssen Sie einige Tricks anwenden. Glücklicherweise sind die Daten recht einfach abzurufen. Wenn Sie Tasker oder eine andere Automatisierungsanwendung haben, müssen Sie lediglich eine Benachrichtigung erstellen, die auf Knopfdruck mit dem aktuellen Text aktualisiert wird, der in /sys/class/power_supply/battery/capacity gespeichert ist.
Im obigen Screenshot bleibt meine Batterieanzeige (die sichtbar ist, wenn ich die Statusleiste nach unten ziehe) bei 70 % hängen, aber wie Sie im Terminal sehen können, beträgt mein tatsächlicher Batteriestand 69 %. Es wäre einfach, diese Datei regelmäßig abzufragen, um den genauen Batteriestand in meiner Benachrichtigungsleiste anzuzeigen, aber es gibt eine noch einfachere Möglichkeit, diesen Rückschlag zu umgehen.
Der Umgang mit diesem besonderen Nachteil ist eigentlich unglaublich trivial. Wenn Sie darüber nachdenken, tritt dieses Problem nur auf, wenn der Befehl aktiviert ist und der Bildschirm eingeschaltet ist. Tatsache ist jedoch, dass Sie diesen Befehl nicht aktivieren müssen, wenn der Bildschirm eingeschaltet ist, da die Standardfunktion Ihnen den Zugriff auf „OK Google“-Befehle ermöglicht, wenn der Bildschirm eingeschaltet ist. Alles, was Sie tun müssen, ist also einfach Deaktivieren Sie diesen Befehl, wenn der Bildschirm eingeschaltet ist. Die Verwendung von Tasker oder einer anderen Automatisierungs-App wäre wahrscheinlich der einfachste Weg. Führen Sie einfach diesen Befehl aus, um den Trick zu deaktivieren:
dumpsys battery reset
Und unten finden Sie die Beschreibung der beiden Tasker-Profile, die Sie einrichten müssten, um diesen Befehl bei ausgeschaltetem Bildschirm auszuführen, ihn aber zu deaktivieren, wenn der Bildschirm eingeschaltet ist. Im Wesentlichen erstellen Sie zwei „Ereignis“-Kontexte, von denen einer das Ereignis „Anzeige aus“ und der andere das Ereignis „Anzeige entsperrt“ ist. Die Aufgabe für das Ereignis „Anzeige aus“ enthält eine einzige Aktion: Code -> Shell mit dem Befehl ausführen dumpsys battery set ac 1
. Die Aufgabe für das Ereignis „Entsperrt anzeigen“ enthält auch eine einzelne Aktion: Code -> Shell mit dem Befehl ausführen dumpsys battery reset
. Daher führt Tasker den Befehl aus, um Ihrem Gerät vorzutäuschen, dass es aufgeladen wird, während der Bildschirm ausgeschaltet ist (Profil: Aktivieren). Hotword-Erkennung) und führen Sie den Befehl aus, um diesen Trick zu deaktivieren, wenn das Telefon entsperrt ist (Profil: Hotword-Erkennung deaktivieren).
[tabs][tab title ="Hotword-Erkennung aktivieren"]
Profile: Enable Hotword Detection (180)
Event: Display Off
Enter: Anon (182)
A1: Run Shell [ Command: dumpsys battery set ac 1Timeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]
[/tab][tab title ="Hotword-Erkennung deaktivieren"]
Profile: Disable Hotword Detection (191)
Event: Display Unlocked
Enter: Anon (192)
A1: Run Shell [ Command: dumpsys battery resetTimeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]
[/Tab]
[/tabs]
Nachteil Nr. 2 – Erhöhter Batterieverbrauch
Es gibt einen guten Grund, warum die Hotword-Erkennung zu jeder Zeit einen benutzerdefinierten Co-Prozessor erfordert, denn andernfalls würde es zu einer zusätzlichen Batteriebelastung durch die CPU kommen, die wach bleiben muss. Wenn Sie Ihrem Gerät vorgaukeln, dass es aufgeladen wird, bedeutet das, dass das Gerät den Prozessor am Laufen hält und mehr im Hintergrund läuft Dienste, da davon ausgegangen wird, dass der erhöhte Stromverbrauch keine Rolle spielt, da das Gerät Zugriff auf eine Stromquelle hat.
Dies ist hier jedoch nicht der Fall, sodass die Aktivierung dieses Befehls zu einem erhöhten Batterieverbrauch führt. Ich habe die Erfahrung gemacht, dass mein Mate 9 leer war, wenn ich mein Gerät über Nacht in diesem Zustand beließ 12 % Akku im Laufe von 8 Stunden.
Meiner Meinung nach kaum ein Deal-Breaker, aber das könnte einige von Ihnen da draußen abschrecken. Leider gibt es keine einfache Lösung, um diesen zweiten Nachteil zu beheben. Das Deaktivieren des Befehls bei eingeschaltetem Bildschirm, wie im letzten Absatz im obigen Abschnitt erwähnt, kann dazu beitragen, das Problem etwas zu mildern, aber das ist auch schon alles, was Sie tun können.
Abschluss
Ich hoffe, Sie finden diesen Trick nützlich. Es ist sicherlich nicht jedermanns Sache, aber wenn Sie schon immer die Funktion der OK-Hotword-Erkennung von Google erzwingen wollten und Ihr Gerät nicht über die erforderliche Hardware verfügt, ist dieser Workaround genau das Richtige für Sie.
Ich habe die beiden potenziellen Nachteile dieses Tricks umrissen. Der erste davon kann gelöst werden, indem eine Automatisierungsanwendung verwendet wird, um den Befehl zu aktivieren/deaktivieren, wenn dies sinnvoll ist. Der letztgenannte Nachteil ist leider darauf zurückzuführen, dass Ihre Hardware nicht für Always-on ausgelegt ist Hotword-Erkennung, aber wenn Sie dies nur verwenden, wenn Sie es wirklich brauchen, sollte es nicht zu viel sein Ausgabe.
Probieren Sie diesen Trick aus und lassen Sie uns in den Kommentaren unten wissen, ob er für Sie funktioniert!