ブルートゥースを使用しても、クライアントサーバーアプリケーションを作成できます..BluetoothSocket
ここで読むことができますhttp://developer.android.com/reference/android/bluetooth/BluetoothSocket.html
ここで、2 つのデバイスがあるとします。
- デバイス A
- デバイス B
デバイス A がデバイス B にデータを送信していると仮定します。デバイス B がデバイス A にもデータを送信しているかどうかはわかりませんでした。そのため、A が B にデータを送信する最初のシナリオについて説明します。
その場合、すべてのデータはデバイス A に保存されており、それをデバイス B に送信したいので、デバイス A を BluetoothServer として作成し、デバイス B を BluetoothClient として作成してサーバーをリッスンする方が合理的です。
しかし..両方のデバイスがデータを交換したい場合..それらの1つをサーバーとして作成し、それぞれに対して2つのスレッドを作成できます。
- データを送信するスレッド
- データをリッスンするスレッド
両方ともデータを交換できます。
別のこと..通常のクライアントサーバーをプログラムしたことaccept()
がある場合は、サーバーに接続されたクライアントが存在するまでメソッドがブロックされていることに気付きました..同じことがBluetoothクライアントサーバーアプリケーションにも当てはまります。
要約:
1 つのデバイスがサーバーとして機能するため、サーバー プロジェクトを作成
して最初のデバイスにインストールする必要があります。
2 番目のデバイスはクライアントとして機能するため、クライアント プロジェクトを作成して 2 番目のデバイスにインストールする必要があります。
両方のプロジェクトのマニフェスト ファイルに bluetooth パーミッションを追加することを忘れないでください。
両方のプロジェクトには、質問で述べたのと同じ UUID が必要です。簡単に言えば、両方の側がUUIDを必要とするので、それぞれが誰と通信しているかを知ることができます。これは、通常のクライアントサーバーのポートのようなものだと思います.RFC通信に使用される場所を読みました..おそらくご存知のとおり
RFC、SDP などのような Bluetooth 用のプロトコルがいくつかあります。
編集:
ほとんどの携帯電話では、ブルートゥース経由でデータを送信するときにペアリング プロセスがあります。したがって、クライアントサーバーバージョンを使用したくない場合は、これを行うことができると思います:
- アプリケーションは、接続するデバイスを検索します。(ペアリングプロセス)
- ペアリング後、他のデバイスに接続され、データを送信するだけです
編集 2:
A から B にデータを送信したいですか? もっと分かりやすく説明します..
クライアントが誰がサーバーであるかを知っている必要があり、サーバーのポートとIPを挿入する必要があると言ったのは正しいです。これは正しく、このように機能します。
ほら見て..
サーバーはクライアントからの接続をリッスンし、接続が確立されると通信が開始されます。
- クライアントがデータを要求する
サーバーはクライアントのリクエストを処理し、関連データをクライアントに送信します
したがって、ファイル、データベースなどのデータはサーバー側に保存する必要があります..
あなたの場合、送信したいファイルはデバイス B ではなくデバイス A にあります。したがって、デバイス A がサーバーである場合、彼は接続をリッスンします。デバイス B がサーバー (デバイス A) に接続すると、通信が開始されます。 .. デバイス B はデバイス A からファイルを要求できます.. また、デバイス A はサーバーであるため、メッセージをブロードキャストすることもできます.. 接続されているすべてのクライアントに同じメッセージを送信することを意味します.
しかし、あなたがしたいのは、デバイス b が要求していなくてもファイルを送信することですよね? デバイス B もデバイス A にファイルを送信する必要があるかどうかわかりません
。シナリオに分けてみましょう。
デバイスAがBに送信するだけ:この場合、ファイルはデバイスAにあるため、デバイスAにデータがあり、デバイスAがサーバーでデバイスBがクライアントであることを意味します。したがって、接続が確立されたら、A から B に送信できます。
両方のデバイスがデータを交換する: この場合、両方のデバイスが相互にリッスンする必要がありますが、1 つだけがサーバーとして機能し、もう 1 つがクライアントとして機能する必要があります。つまり、一方に serverApp をインストールし、もう一方に clientApp をインストールする必要があります。しかし、それぞれが他の人に送信して聞くことができます。したがって、それぞれについて、送信データを処理するスレッドと受信データを処理する別のスレッドを作成する必要があります