2012-03-07 16 views
18

2つのデバイスにインストールされているAndroidアプリが互いに通信する最も良い方法は何ですか?テキストメッセージを使わずにデバイスを直接接続できますか?Android - 2つのデバイス間の通信

+0

Android Beam :)しかし、これは数少ない新しいデバイスでのみ利用可能です。 –

答えて

12

BluetoothSocketを使用してBluetooth経由で接続できます。 Androidデベロッパーのウェブサイトにはこれに関するかなり良いドキュメントがあります。

http://developer.android.com/guide/topics/wireless/bluetooth.html

それとも、(両方のデバイスでインターネットを持っている)、むしろたい場合、あなたは、通常のソケットのを使用することができます。あなたが転送するデータが大量にある場合は、クライアント側

のためのサーバ側 http://developer.android.com/reference/java/net/Socket.htmlため

http://developer.android.com/reference/java/net/ServerSocket.html、インターネットソケットは、より大きなデータ容量を持っていると速くなります。もう一つの利点は、「範囲外」というようなものは存在しないということです。あなたは、インターネットが利用可能などこにでも2つのデバイスを接続することができますが、Bluetoothの場合、Bluetoothの範囲内にある必要があります。

+0

こんにちはデレク、いくつか質問があります。あなたが答えてくれることを願っていますアプリケーションはどのようにサーバーのIPアドレスを取得するはずですか?また、RMIは、両方のデバイスが同じネットワークを使用している場合にのみ、ソケットの場合と同じですか? – Ruturaj

+1

「WiFi-Direct」もオプションではありませんか? – Mick

1

何をしているのかによって異なります。サーバーをお持ちの場合は、メッセージを送信して、他のデバイス(両方のクライアントにアプリケーションがインストールされていることを前提とします)にプルすることができます。私はこれが最も直感的な方法だと思っています(しかし、あなたが伝えているものに本当に依存しています)。

テキストメッセージと電子メールは機能するかもしれませんが、あなた(またはユーザー)はデバイスに関連付けられた番号/電子メールを知る必要があります。

0

アンドロイドNSD APIはあなたが達成しようとしている、まったく同じことを行うためのものです! SDKにバンドルされているサンプルは、自明です!

確認してください。

Android NSD API example

14

をあなたの要件とセットアップに応じて、いくつかのオプションがあります:あなたのデバイスは、(約10メートルまで)互いに非常に接近している場合

  • Derekが提案したように、Bluetoothを使って通信することができます。
  • あなたのデバイスが離れていても、WiFiの範囲内(最大約100メートル)の場合、ピアツーピアWiFi APIを使用してお互いに通信することができます。here(Androidの一部ワイヤレスAPI)。これは、WiFiルーターが存在する必要はなく、デバイスはお互いを見つけて直接通信します。ただし、Android 4.1以上が必要です。
  • AndroidワイヤレスAPIは、お互いの範囲内にいなくても、同じローカルネットワーク上にある(つまり、同じWiFiルーターを使用する)場合にも機能します。
  • これらのオプションのどれも実行可能/保証されていない場合、私はDerekに最も簡単な方法はServerSocketとSocketを使用してインターネット経由でサーバー/クライアントインターフェイスを作成することに同意します。ここにはsample applicationがあります。あなたが遭遇するかもしれない主な問題は、サーバがNAT(ホームインターネットルータなど)の後ろに座っている場合、着信パケットをAndroidサーバに転送するようにNATを設定する必要があることです。
0

あなたはのWi-Fiのピア・ツー・ピア(P2P)はに直接接続するには、Android 4.0(APIレベル14)、または適切なハードウェアと後で デバイスを可能にWifiDirect

を見ている必要がありますそれぞれ Wi-Fi経由で、中間アクセスポイントなし。

関連する問題