この質問と別の質問を読み、別のアプリケーションからアプリケーションを起動する方法を理解しました(他のアプリケーションをLauncherApplicationと呼びましょう)。ただし、私の目標はアプリケーションを起動するだけでなく、その関数を使用することなので、LauncherApplicationはインテント(明示的または暗黙的)を使用してアクティビティを開始する必要があると思います。
インストールされたアプリケーションが反応するデータとアクションを知っている必要があり、起動する前にこれらの情報をインテントインスタンスに追加する必要があります。LauncherApplicationでユーザー(開発者ではない)がこのインテントを構成できるようにしたいと思いますが、インストールされたアプリケーションのインテントに入れるパラメーターを事前に知るにはどうすればよいですか?
ユーザーがグラフィカルインターフェイスを介してインテントを構築できるようにするには、「LauncherApplication *」を実装する必要があります。または、アプリケーションにプラグインの追加をサポートさせることもできます。このようにして、インストールされているアプリケーションごとにプラグインを作成できます。プラグインは、それに関連付けられたアプリケーションに関するインテントの構成を管理する責任を負う可能性があります。
UPDATE(詳細を追加)。特に、LauncherApplicationは、音声認識機能が有効になっているサービスである必要があります。これにより、ユーザーは特定のキーワードを発声するアプリケーションを開始できます。アプリケーションを起動するだけでなく、ユーザーはアプリケーションを閉じてその機能を使用できる必要があります。
たとえば、図書館で利用可能な本を検索するためのアプリケーション((これをLibraryAppと呼びましょう)をインストールすることができます。このアプリケーションには、次の機能があります。
- 書籍を検索します(この関数は、書籍が利用可能であるか、すでに貸し出されているか、他の誰かによって予約されている場合に返される場合があります)。
- 本を予約する(この関数は予約の完了を返す必要があります)。
このように、たとえば「start LibraryApp」という単語を発音すると、LauncherApplicationサービスはLibraryAppアプリケーションを起動する必要があります。アプリケーションが起動すると、サービスは、使用可能な機能の1つ(本の検索、本の予約)を使用するためのコマンドをアプリケーションに送信できるようになります。
アプリケーションを制御するために、すでにアクティブになっているアプリケーションにコマンドを送信するにはどうすればよいですか?