1. 首先获取BluetoothAdapter
方法 1:final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE);
BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();
方法 2:BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
2. 创建BroadcastReceiver,并在需要的时候注册registerReceiver,不需要的时候unRegister。
(1) 创建广播过滤器
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(BluetoothDevice.ACTION_FOUND); //接收BluetoothDevice.ACTION_FOUND 的广播
intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); //接收BluetoothAdapter.ACTION_DISCOVERY_STARTED的广播
intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); //接收BluetoothAdapter.ACTION_DISCOVERY_FINISHED的广播
(2) 创建广播接收器
private BroadcastReceiver Receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)){
//扫描到蓝牙设备,可以从收到的intent对象中,将代表远程蓝牙的适配器取出
BluetoothDevice device=intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); //拿出扫描到的蓝牙设备
}else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)){
// 开始扫描蓝牙设备广播
}else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){
// 扫描蓝牙设备完成广播
}
}
}
(3) 在OnResume的时候resiter广播接收器
registerReceiver(Receiver ,intentFilter ); // 可根据自己的需要注册
在OnPasue的时候unRegister
unregisterReceiver(mGattUpdateReceiver); //可根据自己的需要反注册
3. 调用系统的方法
mBluetoothAdapter.startDiscovery(); // 开启扫描周围蓝牙设备的方法
mBluetoothAdapter.cancelDiscovery(); //停止扫描蓝牙设备d方法
mBluetoothAdapter.isDiscovering() // 判断是否在扫描蓝牙设备 在扫描返回true 否则 false