2

システムアプリにサービスがあります。システム権限のないクライアントアプリで、サービスの関数を呼び出して、システム権限が必要なことを実行できるようにしたいと思います。サービスは独自のアプリ内にあるため、AIDLを使用して、サービスとクライアントアプリ間のIPCのインターフェイスを定義しています。

クライアントアプリを作成している人々が、システム権限を必要とする独自のコードを記述し、サービスに含めるコードを提供できるようにしたいと思います。したがって、私のサービスは、リクエストをどこに渡すかを示す一般的なリクエストと、リクエスト自体を受け取ります。

クライアントが自分のコードにどのデータを出し入れする必要があるかわからないので、汎用インターフェイスを使用して、クライアントが必要とする可能性のあるあらゆるタイプのデータを処理したいと思います。すべてのデータ型のAIDLインターフェイスに関数を追加する必要がありますか?

void doStuff(in String inStr, out String outStr);
void doStuff(in int inInt, out int outInt);

等...

自分で区画化可能なオブジェクトを作成したほうがいいでしょうか?AIDLでこれを処理するための最良の方法は何ですか?

4

1 に答える 1

2

あなたの質問には2つの部分があります:

a。)サービス(リクエストを渡す場所を示す):

呼び出し元のUIDを取得し、それをジョブ/要求インジケーターとして使用できます。

b)AIDLタイプ:

デフォルトでは、AIDLは次のデータ型をサポートしています。

1.)Javaプログラミング言語のすべてのプリミティブ型(int、long、char、booleanなど)2。)文字列3.)CharSequence 4.)リスト

他のオブジェクトがある場合は、独自のパーセル可能なオブジェクトを作成する必要があります。

于 2013-01-17T19:45:11.600 に答える