現在、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()
そのため、端末を呼び出して起動したら、アプリを再び表示する方法を見つける必要があります。私は多くのルートを試しましたが、実際には成功していません。唯一の本当に前進する方法は、端末アプリ自体に変更を加えることだと思います。これは喜んで行います(ソースをダウンロードしてテストしました)が、単なるどこを見て、何を変更するかについてはほとんど行き詰まっていません。
私のアプリやその他の情報が必要な場合は、お知らせください。
ありがとうございました