質問: ### 前提・実現したいこと 複数端末をBluetoothで送受信(非同期)するAndroidアプリの作成 BluetoothにてA端末(センサー)⇒B端末(Android)にて受信したデータを、さらにBluetooth接続にて、C端末(PC)に送信 A→Bには、一定間隔でデータが送られており、受信できている状態。 (※ペアリングは行っていない) そのデータを同様に一定間隔でB→CにBluetooth送信を行いたい。 (※こちらは、ペアリング実施予定) ### 発生している問題・エラーメッセージ B端末からC端末にBluetoothでデータを送りたいが、Aからの受信を続けたまま、 別のC端末とのBluetooth接続は可能か? ### 該当のソースコード ※A→Bについては、センサー会社から提供されたソースを使用しているため、開示不可 ### 試したこと 実現可能か確認中の為、未実施。 ### 補足情報(言語/FW/ツール等のバージョンなど) Java JDK8、Android 5.1(Lollipop)
回答: 可能ですが、いろいろな条件があります。 * A-B Bが受信側なのでBが頻繁に入力待機状態になる * B-C Cが受信側なので頻繁に入力待機状態になる A-B間通信で使用したUUIDは利用できない 機器CがBluetooth対応である必要がある Bが受信したデータを送信アプリに送れる(センサー会社から提供されたソースを弄れる) 説明 入力待機状態ではスレッドが停止するので、入力と出力でスレッドかプロセスを分ける必要がある場合があります。入力内容をそのまま受け流すだけなら必要ないです。 また、CはPC本体とOSがBluetooth対応である必要があります。 OSはwin7以降なら自分も経験があるので大丈夫なはず。linuxは知りませんが、調べる限りではサンプルコードが出てきます。 自分はコンパイラBorland C++、OSはwindows10、MicrosoftSDKs(windows標準)とかいうのを使いました。(javaを使いたかったのですが非対応だったので)あくまで参考までに。 UUIDはサービスの識別を行うIDです。A-B通信で指定してあると思いますが、それを流用しようとコピペすると危ないです。UUIDは、11111111-2222-3333-4444-444444444444のような形式のものです。16進数で0~fまで使えるのでA-B間通信のUUIDの末尾を+1するのが簡単でしょう。BとCで同一ものもを利用する必要があります。 他にも関連することがあるかもしれませんが、自分が知る限りではこれくらいです。