设置蓝牙
1.获取BluetoothAdapter(自身蓝牙适配器)
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getdefaultAdapter();
if (mBluetoothAdapter == null){
//表示手机不支持蓝牙;
}
2.启用蓝牙
//如果手机蓝牙没有打开,就会跳转到手机系统蓝牙界面
if (!mBluetoothAdapter.isEnable()){
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableIntent,REQUEST_ENABLE_BT);
}
通过上面方法将显示对话框请求用户打开蓝牙,如果点击允许,系统将开启蓝牙,并返回App
查找设备
扫描设备,搜索附近开启蓝牙的设备,需先配对,然后连接
查询配对的设备
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
if(pairedDevices.size > 0){
for(BluetoothDevice devices : pairedDevices){
mArrayAdapter.add(devices.getName) + "\n" + device.getAddress());
}
}
要发起连接,BluetoothAdapter对象仅仅需要提供MAC地址
发现设备
要开始发现设备,只需要调用startDiscovery(),
需要注册一个广播,接收每台发现的设备进行页面扫描,检索其蓝牙名称。
private final BroadCastReceiver mReceiver = new BroadCastReceiver(){
public void onReceive(Context context, Intent intent){
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action){
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
}
}
}
//注册广播
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);