1

まず、私はこれを見ました:

APKとしてのリモートサービス

そして、それは私をまったく助けません。これが取引です。リモートサービスを作成するapkが1つあります(Aと呼びます)。次に、別のapkを持っています(Bと呼びます)。AIDL ファイルまたは jar ファイルを含めずに B を A に接続するにはどうすればよいですか。これは可能だと思います。

** アップデート **

そのため、AIDL ファイルを B にコピーし、A で AIDL ファイルのサービスに を作成しました。リモート サービスに接続し、サービスにバインドできるようになりました。ただし、サービスに存在するメソッドを呼び出そうとすると、次のようになります。

java.lang.SecurityException: 不適切なインターフェースへのバインダー呼び出し

これに関するヘルプを見つけるのに苦労しています。何か案は?

** 問題は解決しました ** AIDL ファイルは、プロジェクト B の同じ名前のパッケージに含まれている必要がありました。Peter さん、ご協力ありがとうございます。

4

1 に答える 1

1

2 つの別個のプロセス間で送信されるデータの形式を知っておく必要があります。これは、データを Java オブジェクトにシリアライズ/デシリアライズするために必要です。

AIDL は、オブジェクトの構造を記述するための記述言語です。

したがって、次の 2 つのオプションがあります。

  1. AIDL を持っているか、

  2. あなたのコードは、逆シリアル化を行うための形式を明示的に知っています。の実装ですParcelable。この実装は、アプリに含める jar 内にある可能性があります。

于 2011-09-26T21:41:10.043 に答える