Bluetooth通信の実装|Android開発
AndroidアプリでBluetooth通信を実装する方法です。
Bluetooth接続では、受信側と送信側で同一のUUIDを使用します。下記はシリアルポートプロファイル(SPP)でデータを送信するBluetooth機器との通信サンプルです。
前提条件
- 接続デバイスとはペアリング済みにしておきます
- AndroidManifest.xmlに以下の権限を追加しておきます
Bluetooth 通信手順
BluetoothAdapter
を取得します- ペアリング済みのデバイス一覧を取得します
getBondedDevices()
はエラー時にnull
を返すためエラー判定が必要です - 取得したデバイス一覧から接続デバイスを検索します
SerialPortProfileConnectThread
クラスはシリアルポートプロファイルを使ってBluetooth接続するクラスです。
実際の接続処理は親のBluetoothConnectThread
クラスで実装しています。 - 接続前に Bluetooth デバイスの検索を停止します
SerialPortProfileConnectThread
を開始し、ソケットを接続します接続が完了したら、このスレッドは終了します。
Bluetooth 接続完了前に次項のBluetoothReceiveTask
でデータ読み出しを行うと例外が発生します。- データ受信用のスレッドを生成・実行します
この時、接続完了したソケットを使用しますBluetoothReceiveTask
では接続機器の仕様に合わせて受信したデータを処理します。
以上で Bluetooth 機器とシリアルポートプロファイルを使ったデータ通信が可能です。
Bluetooth通信終了処理
Bluetooth通信終了時はデータ受信のスレッドを終了させます。
