スマホでのBluetooth通信(接続)

■対象機器への接続。
前回近場のBluetooth機器の検出までできたので、次はその機器への接続。Android Developerのウェブサイトに載っている内容や参照されるコードを参考にして作っていく。

接続する場合、startDiscovery で見つけたアドレスが必要なよう。それがある前提でつなげていく。Android Studio を使ってコードを作っているけど、コードの実行はスマホ実機を使っている。そのため、スマホ上で実行してPCのBluetoothデバイスへの接続となる。

大まかな手順は下のようになるもよう。

1.別のスレッドで、BluetoothAdapter クラスの listenUsingRfcommWithServiceRecord メソッドから得た BluetoothServerSocket クラスの accept メソッドを実行してリスニングの状態にする。
2.さらに別のスレッドで、BluetoothDevice クラス(この特定に見つけたアドレスが必要)の createRfcommSocketToServiceRecord から得た BluetoothSocket クラスの connect メソッドを実行して接続。

コードを見ると Server といった表記がされているので、サーバとクライアントで別々の機器に対してコードを入れないといけないように見えるけど、サンプルでは同じクラスの中に作成していた。

MainActivity から実行するコードは、下のようにテキストビューをクリックすることで起動するようにした。クリック時に上の1,2が実行される。


accept と connect の実行までエラーなどは出なかったけど、実際に接続されているかよく分からない。接続した後にデータ通信を行う記事があるので、それを試して実際に接続がうまくいっているか確認したい。