web-dev-qa-db-ja.com

android 2つのアプリケーション間の通信

相互に通信する2つのAndroidアプリケーション(1台の電話))の開発を開始する方法について、いくつかの助けが必要です。

  1. アプリケーションAは文字列をアプリケーションBに送信します。
  2. アプリケーションBは「startClassOne」などの文字列を受け取り、メソッドを使用するアプリBはclassOneを開始し、結果を取得します。結果は(再び文字列として!)アプリケーションAに返送されます。
  3. アプリケーションAは、Bから受信した文字列をコンソールに書き込みます。
18
androidTesting

こんにちは、私は互いに通信する2つのAndroidアプリケーション(1台の電話))の開発を開始する方法についていくつかの助けが必要です。

全体として、特に両方の作成者である場合は、通常、1つのアプリケーションを人為的に2つに分割することは望ましくありません。

そうは言っても、次のことができます。

  • アプリケーションBにアプリケーションAからstartService()を介して呼び出されるIntentServiceを公開させ、結果をcreatePendingResult()からPendingIntentを介して返します。 MessengerまたはブロードキャストIntentまたはResultReceiver;または
  • アプリケーションBにAIDLで定義されたAPIを使用してServiceを公開させ、アプリケーションAにそのサービスにバインドさせてから、アプリケーションAにアプリケーションBのメソッドを呼び出すか、または
  • ブロードキャストIntentをアプリケーションAからアプリケーションBに送信し、結果は上記の最初の箇条書きと同じオプションのリストによって返されます。または
  • アプリケーションBにコンテンツプロバイダーを実装させ、アプリケーションAにContentResolverを使用してそのコンテンツプロバイダーを操作させる
  • 等々

アプリケーションAが使用するAPIだけでなく、アクセス許可で保護しない限り、デバイス上のすべてのアプリケーションが使用するAPIを公開しているため、実行していることによるセキュリティへの影響をすべて確認してください。

37
CommonsWare