BLEスキャンの実装|Android開発
AndroidアプリでBLE(Bluetooth Low Energy)をスキャンする方法です。
事前準備
import
BluetoothAdapter の取得
ActivityであればonCreate()
などで行います。
以前の「Bluetooth通信の実装記事」では
BluetoothAdapter
の取得にBluetoothAdapter.getDefaultAdapter()
を記載しましたが、BluetoothAdapter.getDefaultAdapter()
はAPI level 31でdeprecatedになりました。
Bluetooth の有効確認
mBluetoothAdapter.isEnabled()
でBluetoothが有効かどうかを判定します。下記サンプルではBluetoothが無効の場合にBlutoothの有効化を要求するダイアログを表示しています。
Bluetooth の有効要求ダイアログ

BLEスキャン
BLEスキャンの開始
BluetoothLeScanner.startScan()
でスキャンを開始します。
ScanCallback
スキャン結果はコールバックを使用して報告されます。
BLEスキャンの終了
BluetoothLeScanner.stopScan()
でスキャンを停止します。スキャン開始時と同じコールバック関数を指定します。
スキャンしなくなる問題
BLEスキャンを指定していると、受信を行わなくなる場合があります。そのため、一定時間ごとにstartScan()
を再コールします。