透過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中文網其他相關文章!