0

事前に知られていない他のアプリと通信するAndroidアプリ(「ZX」と呼びましょう)を書きたいです。

ZXは、他のすべてのアプリと通信することを望んでいません。ZXパーミッションを介してユーザーが承認したアプリとのみ通信する必要があります。ZX-パーミッションは、ZXのアクティビティの1つを介して、ユーザーがいつでも付与および取り消すことができます。

そのためには、ZXはどのアプリが通信しようとしているのかを確実に知る必要があり、ZXと初めて接続するアプリの場合は、その名前(またはそれを一意に識別する何か)を表示する必要があります。ユーザーはそれを許可するかどうかを尋ねます。

質問:

1)呼び出し元のアプリを識別する方法は?

2)そのためにどのIPCメカニズムが推奨されますか?

4

2 に答える 2

1

あなたは詳細にかなり謎めいているので、この質問に素晴らしい答えを与えるのはちょっと難しいです...しかし、私はそれを突き刺します..

「ZX」の機能によっては、オブザーバーパターンのようなものがこれに使用できます。アプリケーションがZXと通信したい場合は、ZXにメッセージを送信し、ZXが保持するルックアップテーブル/リストに自分自身を追加します。

基本的にあなたはこのようなものを持っているでしょう...

アプリケーションAIはZXと通信したいと考えています。ZXアプリケーションに関する情報(必要なものは何でも、IPアドレスなど)を含むメッセージを送信します。addApplication()この情報は、アプリケーションに関連するすべての情報を格納する新しいCommAppオブジェクトを作成するなどの関数に送られる可能性があります。

ZXAI次に、それがさらなる通信に使用できる一意の認証キーを送信できます。これにより、実際のセッションを処理できます。2つのアプリケーション間のそれ以上の通信は、一意のキーで認証できます。このアプローチは、「悪者」を締め出そうとするのではなく、さまざまなアプリの識別に認証を使用していることを前提としています。

あなたの実際の状況を拡張することができれば、私はあなたのニーズにもっと合うように私の質問を編集させていただきます。

于 2012-04-24T17:06:34.320 に答える
1

「BinderまたはMessengerの使用は、AndroidのRPCスタイルのIPCに推奨されるメカニズムです。これらは、必要に応じてエンドポイントの相互認証を可能にする明確に定義されたインターフェイスを提供します。」

http://developer.android.com/training/articles/security-tips.html#IPC

于 2014-03-02T21:23:12.150 に答える