Heim >Java >javaLernprogramm >Wie führe ich Shell-Befehle wie „screenrecord' von Java auf Android aus?

Wie führe ich Shell-Befehle wie „screenrecord' von Java auf Android aus?

Linda Hamilton
Linda HamiltonOriginal
2024-11-10 06:01:02739Durchsuche

How to Execute Shell Commands like

Shell-Befehle von Android über Java ausführen

Bei dieser Anfrage versucht der Benutzer, den Befehl „screenrecord“ aus einer Java-Anwendung heraus auszuführen auf einem Android-Gerät. Im Gegensatz zur erfolgreichen Ausführung im Terminalemulator schlägt derselbe Code jedoch in Java fehl.

Lösung

Das Problem liegt an den unzureichenden Berechtigungen, die dem Java-Prozess gewährt wurden. Um dies zu beheben, muss man zunächst Superuser-Rechte erlangen, indem man „su“ ausführt und dann den „screenrecord“-Befehl über die Standardeingabe des initiierten „su“-Prozesses weiterleitet.

Der folgende Java-Code bietet eine Lösung:

try {
    Process su = Runtime.getRuntime().exec("su");
    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

    outputStream.writeBytes("screenrecord --time-limit 10 /sdcard/MyVideo.mp4\n");
    outputStream.flush();

    outputStream.writeBytes("exit\n");
    outputStream.flush();
    su.waitFor();
} catch (IOException | InterruptedException e) {
    throw new Exception(e);
}

Dieser modifizierte Code erfasst die Standardeingabe des „su“-Prozesses, überträgt den „screenrecord“-Befehl und beendet den „su“-Prozess, sodass der Befehl ausgeführt werden kann Mit den erforderlichen erhöhten Berechtigungen ausführen.

Das obige ist der detaillierte Inhalt vonWie führe ich Shell-Befehle wie „screenrecord' von Java auf Android aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn