Android で Java から「screenrecord」などのシェル コマンドを実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-10 06:01:02
オリジナル
695 人が閲覧しました

How to Execute Shell Commands like

Java 経由で Android からシェル コマンドを実行

この問い合わせでは、ユーザーは 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」などのシェル コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート