传统蓝牙SPP连接步骤
1. 设备扫描
1.1和ble 设备一样,首先都需要获取蓝牙设备管理器
BluetoothManager bluetoothManager =
(BluetoothManager) mContext.getSystemService (Context.BLUETOOTH_SERVICE);
BluetoothAdapter mAdapter = bluetoothManager.getAdapter ();
1.2 设备搜索
- 搜索先先判断是否连接,如果没有连接,可以通过代码将蓝牙打开
if (mAdapter == null || !mAdapter.isEnabled ()) {
if (!mAdapter.isEnabled ()) {
LogS.d (TAG, "蓝牙未开启,开始开启蓝牙");
mAdapter.enable ();
}
}
这里需要注意,开启蓝牙是一个异步操作,执行打开操作后,立马去搜索可能会搜索不到,这里有两种思路:
1.监控蓝牙开关广播状态
2.加个延时,然后搜索,且适当延长搜索时间。
- 判断是否正在搜索,如果正在搜索,就停止搜索
if (mAdapter.isDiscovering ()) {
mAdapter.cancelDiscovery ();
}
- 每次扫描之前都先判断一下是否存在已经配对过的设备
Set<BluetoothDevice> paireDevices = mAdapter.getBondedDevices ();
if (paireDevices.size () > 0) {
for (BluetoothDevice device : paireDevices) {
LogS.d (TAG, "将设备信息存入数组中" + device .getAddress ());
}
}
如果已经有我们之前配对过的设备,可以根据自身业务直接去连接。
- 开始扫描设备
mAdapter.startDiscovery ();
- 通过广播监控扫描结果
5.1 注册广播
public void r