Stoppen Sie die Medienwiedergabe über adb

Ich teste einige Einstellungen auf einem Telefon, und leider ist die einzige Kontrolle, die ich im Moment habe, über adb. Mein Problem ist, dass ich zwar die Wiedergabe einer Musikdatei mit dem folgenden Befehl starten kann, aber keine Möglichkeit habe, sie zu stoppen, damit ich die nächste Iteration durchführen kann.

adb shell am start -a android.intent.action.View -d "file:///sdcard/Music/mediatest.mp3" -n "com.android.music/.MediaPlaybackActivity"

Ich weiß nicht, ob es möglich ist, die Wiedergabe mit einem anderen adb-Befehl zu beenden, aber es sieht für mich nicht so aus - ich sehe , dass es keine Absichten gibt , die diese Funktion auszuführen scheinen, noch irgendwelche Aktivitäten , die gemacht werden, um das zu stoppen Medienwiedergabe.

Wenn Sie den Befehl ausführen, "sperrt" das Terminal, bis das Lied beendet ist, oder wird es sofort ausgeführt und kehrt dann zur Terminal-Eingabeaufforderung zurück?

Antworten (2)

Verwenden Sie KeyEvent , um die Aufgabe zu erledigen.

adb shell input keyevent 85

85entspricht KEYCODE_MEDIA_PLAY_PAUSE. Weitere Schlüsselcodes finden Sie hier oder hier .

Wenn sich die Aktivität mit Play/Pause-Optionen im Vordergrund befindet, können Sie alternativ Folgendes tun:

adb shell input touchscreen tap <X> <Y>

wobei <X>und <Y>die Koordinaten des Tippens sind, das Sie für Play/Pause mit Ihren Fingern ausführen würden. Sehen Sie sich meine Antwort hier an, um zu erfahren, wie Sie sie erhalten (Schritt 1 und 2 unter Anweisungen für Tasker- und Xposed-Zusätze ).

Oder Sie können sich dafür entscheiden, die App vollständig zu beenden, indem Sie Folgendes verwenden:

adb shell am force-stop <PKG_NAME>

Bearbeiten

Kitkat und höher hat den Befehl media, dessen Verwendung wie folgt lautet:

adb shell media dispatch KEY

KEYkann Play, Pause, Play-Pause, Mute, Headsethook, Stop, Next, Previous, Rewind, Record, Fast Forward sein. ( Quelle )

Es wäre jedoch auch einfach, die App von Grund auf neu zu starten und verschiedene Mp3-Standorte als Daten zu senden.

Ich habe den Musikplayer mit dem Befehl „top“ in der ADB-Shell gestoppt und die Prozess-ID der Musik-App mit Superuser-Zugriff (ROOT) beendet.

Ausführlichere Anweisungen wären eine gute Antwort.
@Peanut top zeigt den vollständigen Paketnamen darauf, Sie brauchen keine weiteren Erklärungen. Die Verwendung von Schlüsselereignissen und das Senden von Medienstopps ist der richtige Weg.