BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter == null) { // 设备不支持蓝牙 } else { if (!mBluetoothAdapter.isEnabled()) { // 请求打开蓝牙设备 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } }
mBluetoothAdapter.startDiscovery();
// 注册 BroadcastReceiver 监听发现设备
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// 在发现设备时
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// 从 Intent 中获取蓝牙设备对象
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// 如果是要查找的设备,则连接
if (device.getName().equals("DEVICE_NAME")) {
ConnectThread connectThread = new ConnectThread(device);
connectThread.start();
mBluetoothAdapter.cancelDiscovery();
}
}
}
};
// ......
// 在Activity的onResume()方法中注册 BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);
// ......
4. 创建蓝牙线程连接和通信:
private class ConnectThread extends Thread {
private final BluetoothSocket mmSocket;
private final BluetoothDevice mmDevice;
public ConnectThread(BluetoothDevice device) {
BluetoothSocket tmp = null;
mm