Es scheint, dass nVidia Shield Android TV mit Android 5.1.1 geliefert wird und ein Marshmallow-Update erst seit Dezember verfügbar ist. Ich gehe davon aus, dass Android 5.1.1 die auf Ihrem Gerät installierte Version ist.
Systemdienste abfragen
Aktivieren Sie adb im Wireless-Modus auf dem Gerät. Folgen Sie bei Bedarf dem offiziellen Leitfaden oder dieser Antwort von Izzy, um Anweisungen zu erhalten.
Sie können den Status von Android - Schlaf oder Wach - aus dem Speicherauszug verschiedener Systemdienste ermitteln.
Service: Leistung
adb shell dumpsys power
Suchen Sie die Zeichenfolgen mWakefulness
und / oder Display Power: state
. Beide würden Ihnen den Status geben, den Sie benötigen.
Beispiel:
adb shell 'dumpsys power | grep -e "mWakefulness=" -e "Display Power"'
gibt mir
mWakefulness=Asleep
Display Power: state=OFF
Service: Fenster
adb shell dumpsys window
Suchen Sie die Zeichenfolgen mAwake=true
und / oder mScreenOnEarly=true
und / odermScreenOnFully=true
Beispiel:
adb shell 'dumpsys window | grep -e "mAwake=" -e "mScreenOnEarly" -e "mScreenOnFully"'
gibt mir
mAwake=true
mScreenOnEarly=true mScreenOnFully=true
Service: Anzeige
adb shell dumpsys display
Suchen Sie die Zeichenfolgen mState=OFF
und / oder mScreenState=OFF
.
Beispiel:
adb shell 'dumpsys display | grep -e "mState=" -e "mScreenState"'
gibt mir
mState=OFF
mScreenState=OFF
Verwenden Sie die Automatisierung
Wenn keiner der in der vorherigen Methode genannten Systemdienste für Sie funktioniert hat, richten Sie eine Automatisierungs- App ein, z. B. Tasker, MacroDroid oder Automate.
Wir würden jetzt die Automatisierung verwenden, um den Status von Android in eine Datei zu schreiben, z. B. Sleeping for Sleep-Modus und Awake, wenn es wach ist.
- Profil: Ereignis → Anzeige → Anzeige aus
- Aufgabe: (Aktionen): Datei → Datei schreiben → Wählen Sie eine Textdatei aus, in die geschrieben werden soll, geben Sie Sleeping ein und deaktivieren Sie Add Newline
- Profil: Ereignis → Anzeige → Anzeige ein
- Aufgabe: (Aktionen): Datei → Datei schreiben → Wählen Sie eine Textdatei aus, in die geschrieben werden soll, geben Sie Awake ein und deaktivieren Sie Add Newline
Android kommt leider nicht mit echo
oder printf
Dienstprogramm. Wenn das Gerät gerootet ist, können Sie Busybox installieren und in Ruhe sein. Wenn nicht, laden Sie die Busybox- Binärdatei herunter , legen Sie die ausführbaren Berechtigungen fest und verwenden Sie /data/local/tmp
sie adb push
. Eine andere Möglichkeit für ein nicht gerootetes Gerät besteht darin, drei Dateien zu speichern, eine für den Status, eine mit dem Text Sleeping und die letzte mit dem Text Awake. Wenn der Bildschirm ein- oder ausgeschaltet wird, kopieren Sie die zweite / dritte Datei in die erste.
Für MacriDroid ist außerdem ein Plugin erforderlich, z. B. Sichere Einstellungen , um Befehle auszuführen.
Für ein nicht gerootetes Android echo
sollte durch ersetzt werden ./data/local/tmp/busybox echo
. Führen Sie andernfalls einen Kopiervorgang mit dem Befehl aus cp SOURCE DESTINATION
.
Ihr Flow sollte mehr oder weniger wie dieses Bild aussehen
(Klicken Sie auf das Bild, um es zu vergrößern)
Sie müssen zwei Flüsse erstellen, einen für den Schlaf und einen für den Wachzustand. Der zweite Block im Flow heißt Broadcast Receive und befindet sich unter Apps. Der dritte Block heißt File Write Text und befindet sich unter File & Storage.
Sie können den Inhalt dieser Datei jetzt mit adb im Wireless-Modus oder mit SSH überprüfen (erfordert einen SSH-Server unter Android; führen Sie den Server auf allen Schnittstellen aus und binden Sie ihn nicht an eine einzige Schnittstelle.)
Es gibt eine andere Möglichkeit, z. B. Ihre Automatisierungs-App dazu zu bringen, die Datei auf einen lokalen oder Remote-Server hochzuladen, damit Sie diesen Server anstelle von Android abfragen können, um den Status zu ermitteln.