Android蓝牙协议分为两种,SPP协议和BLE(Bluetooth low energy),Android4.3以上加入了低功耗蓝牙即BLE蓝牙协议,本篇文章我主要介绍下spp蓝牙协议的一些特性(BLE协议后期会陆续更新)。
比如我们需要实现一个如下图这样功能
1.如何获取当前手机已经绑定了的蓝牙设备?
// 获取默认的蓝牙adapter
BluetoothAdapter mBtAdapter=BluetoothAdapter.getDefaultAdapter();
// 获取当前可用的蓝牙设置
Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();
得到当前的蓝牙设备后,就可用通过遍历pairedDevices ,得到当前手机已经配对过的蓝牙设备。
2.如何扫描得到附近的可用蓝牙设备?
if (mBtAdapter.isDiscovering()) {
mBtAdapter.cancelDiscovery();
}
mBtAdapter.startDiscovery();
ArrayAdapter<String> mNewDevicesAdapter = new ArrayAdapter<String>(this,
R.layout.device_name);
由于安卓中获取附近蓝牙设备是通过广播机制去接收的,所以得注册广播
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
this.registerReceiver(mReceiver, filter);
/**
* 监听搜索到的设备