0

アクティビティとリモートサービスを備えたAndroidプログラムを実装しました。このアクティビティでは、AIDLを使用してサービスと通信および対話しますが、同じマシン上で、IPCメカニズムを使用して相互に通信していることを認識しています。今、私はそれらを別々のマシンに置き、それらを接続したいと思います。ソケットを使用して接続しようとしていますが、どうすればよいかわかりません。アクティビティとは異なるマシンで実行されているサービスを開始/停止してバインドするにはどうすればよいですか?この場合、ソケットが最良の選択ですか、それとも他のより良い解決策がありますか?これを処理するには、Android OSのBinderクラスを変更する必要がありますか?解決策を見つけるのを手伝っていただければ幸いです。

ありがとう、Ra

4

1 に答える 1

2

アクティビティとは別のマシンで実行されているサービスを開始/停止してバインドするにはどうすればよいですか?

あなたはそうしない。

この場合、ソケットが最適な選択ですか、それとも他のより良い解決策がありますか?

NAT の制限などにより、両方が同じ WiFi ルーティング セグメント上にない限り、通常、デバイス間の直接通信はインターネット上では不可能です。これは、直接の PC 間通信の問題と同じであり、関連するファイアウォールを通常は制御できないという追加の課題があります。ほとんどのソリューションでは、中間でサーバーを使用して、ブローカーまたはプロキシとして機能します。

これを処理するには、Android OS の Binder クラスを変更する必要がありますか?

を使用しないでくださいBinderBinderRPC (リモート プロシージャ コール) ではなく、IPC (プロセス間通信) です。

于 2012-06-09T13:59:48.603 に答える