1

現在、1 週間近く取り組んできた状況がありますが、有効な解決策が思いつきません。

ターミナル ウィンドウを起動してコマンドを実行するアプリがあります。使用されるターミナルは Jack Palevich の Android-Terminal-Emulator (ソース コードはこちら) で、ウィンドウを起動するために使用されるコードは次のとおりです。

public boolean runCommand(String command) {
        Intent intent = new Intent("jackpal.androidterm.RUN_SCRIPT");
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    intent.putExtra("jackpal.androidterm.iInitialCommand", command);
    if (mHandle != null) {
        // Identify the targeted window by its handle
        intent.putExtra("jackpal.androidterm.window_handle", mHandle);
    }

    startActivityForResult(intent, REQUEST_WINDOW_HANDLE);

    return true;
}

これで問題なく動作しますが、問題は、アプリの使用中にこのターミナル ウィンドウにコマンドを渡す必要が何度もあり、ユーザーがデバイスと対話しないことです (つまり、自動化する必要があります)。 )。

ターミナル ウィンドウを起動すると、そのウィンドウがビュー内のアクティビティになるため、アプリがまだバックグラウンドで実行されているrunCommand()間、アプリが再び表示されるまで、今後の呼び出しは発生しません。

runCommand()そのため、端末を呼び出して起動したら、アプリを再び表示する方法を見つける必要があります。私は多くのルートを試しましたが、実際には成功していません。唯一の本当に前進する方法は、端末アプリ自体に変更を加えることだと思います。これは喜んで行います(ソースをダウンロードしてテストしました)が、単なるどこを見て、何を変更するかについてはほとんど行き詰まっていません。

私のアプリやその他の情報が必要な場合は、お知らせください。

ありがとうございました

4

0 に答える 0