首頁  >  文章  >  Java  >  如何在 Android 上從 Java 執行「screenrecord」等 Shell 指令?

如何在 Android 上從 Java 執行「screenrecord」等 Shell 指令?

Linda Hamilton
Linda Hamilton原創
2024-11-10 06:01:02673瀏覽

How to Execute Shell Commands like

透過Java 從Android 執行Shell 指令

在此查詢中,使用者嘗試從Java 應用程式中執行「screenrecord」命令在Android設備上。然而,與從終端模擬器成功執行不同,相同的程式碼在 Java 中執行失敗。

解決方案

問題源自於 Java 程序的權限不足。要修正此問題,必須先透過執行「su」來獲得超級使用者權限,然後透過啟動的「su」進程的標準輸入中繼「screenrecord」命令。

以下Java 程式碼提供了一個解決方案:

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);
}

這段修改後的程式碼取得「su」進程的標準輸入,傳送「screenrecord」指令,並終止「su ”進程,允許命令執行必要的提升權限。

以上是如何在 Android 上從 Java 執行「screenrecord」等 Shell 指令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn