【Kotlin/Android Studio】Bluetoothのスキャン方法!startScanの使い方

この記事からわかること
- Android Studio/KotlinでBluetooth接続アプリの実装方法
- startScanメソッドの使い方
- スキャンにフィルタリングや設定をする方法
\ アプリをリリースしました /
環境
- Android Studio:Koala
- Kotlin:1.9.0
Bluetoothのスキャン方法
KotlinでBluetooth機能の実装の流れのペリフェラルのスキャンを実装するためにはbluetoothLeScanner
クラスのstartScan
メソッドを実行します。bluetoothLeScanner
クラスを取得するためにはBluetoothAdapter
クラスが必要になります。
startScan
メソッドの引数にはスキャンの結果後に処理を行うためのコールバックをScanCallback
型で定義する必要があります。
ScanCallback
内でonScanResult
メソッドの中でスキャンしたペリフェラル情報を取得することが可能です。
スキャンのフィルタリング方法
startScan
メソッドは引数にScanFilter
型のリストを渡すことでデバイス名やサービスUUIDでスキャンを絞り込むことができます。setDeviceName
メソッドに絞り込みたいデバイス名をsetServiceUuid
メソッドにはParcelUuid
型でUUIDを渡します。
スキャン設定を指定する
startScan
メソッドの引数にScanSettings
型の値を渡すことでスキャン時の設定を指定することができます。例えばSCAN_MODE_BALANCED
を指定することで検出効率とエネルギー消費の適度なバランスを維持したスキャンにすることが可能です。
他の設定は公式リファレンスを参考にしてください。
RSSIを取得する
「RSSI(Received Signal Strength Indicator)」とは無線通信信号の強度を示す数値のことです。要は接続対象の機器との距離(一概には言えないが)を識別するために活用できたりします。
Androidではスキャン結果を保持するScanResult#rssi
から対象機器のRSSI値を取得することが可能です。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。