サービスで制御できる単純なアプリケーションを作成しています。このアプリケーションを制御するために、サービスはそれに送ることができるコマンドを知っている必要がありますので、私は次のように、これらのコマンドのリストを提供するためのアプリケーションであるべきと思った。サポートされているインテントのリストを送信するにはどうすればよいですか?
- アプリケーションが二次的であってもよいです
MY_ACTION_GET_COMMANDS
インテントに応答するアクティビティ(したがって、"AndroidManifest.xml"ファイルにインテントフィルタを定義する必要があります)。 - サービスは
startActivityForResult
メソッドを使用してこのタイプのインテントを送信できることを知っています。 - アプリケーションがこのタイプのインテントを受信すると、適切なアクティビティは、サポートされているコマンドのリスト(インテントのリスト)を送信することによって送信者に応答します。
サポートされているインテントのリストを送信するにはどうすればよいですか?
更新:アプリケーションとサービスは異なるパッケージになっています。
_私はこれらのインテントのアクティビティを表示する必要がある理由を理解していません。実際のユーザが見ることができるものなのでしょうか?_サービスのユーザは、コマンドでサポートされている各インテントにコマンド(単純な文字列、たとえば "write"、 "save to file")を関連付けることができます。応用。アプリケーションはサービスから分離されています(別のパッケージの一部です)。このサービスには音声認識装置が含まれており、ユーザーはアプリケーションを制御するコマンドを発行できます。 – enzom83
さて、それはPackageManagerを使用して(サービスアプリケーションからでもそれを行うことができます)、またはリモートアプリケーションからきれいなリスト(人が読める説明付き)を返すことです。コンテンツプロバイダ(これはかなり重いIMOですが、状態の変更を書きたい場合に便利かもしれません)を使用して、アクティビティを使用して生データをクエリすることもできます。 – EvilDuck
'PackageInfo pi = pm.getPackageInfo(" org.example "、PackageManager.GET_RECEIVERS); (ActivityInfo ai:pi.receivers){ //インテントフィルタはどこにありますか? } ' – enzom83