Android 连接蓝牙
时间: 2023-07-28 15:07:35 浏览: 45
要连接蓝牙设备,首先需要使用 BluetoothAdapter 的 startDiscovery() 方法扫描周围的蓝牙设备,然后通过 BluetoothDevice 类获取要连接的蓝牙设备的实例,最后使用 BluetoothSocket 类进行连接。
以下是连接蓝牙设备的示例代码:
```java
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.startDiscovery(); // 开始扫描蓝牙设备
// 监听蓝牙设备的扫描结果
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// 获取扫描到的蓝牙设备
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (device.getName().equals("要连接的蓝牙设备名称")) {
// 停止扫描蓝牙设备
bluetoothAdapter.cancelDiscovery();
// 连接蓝牙设备
try {
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID.fromString("要连接的蓝牙设备的UUID"));
socket.connect(); // 连接蓝牙设备
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
};
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(receiver, filter);
```
在上述代码中,我们首先获取了默认的 BluetoothAdapter 实例,然后调用 startDiscovery() 方法开始扫描蓝牙设备。通过注册一个 BroadcastReceiver 来监听蓝牙设备的扫描结果,当扫描到要连接的蓝牙设备时,停止扫描蓝牙设备,使用 BluetoothDevice 类的 createRfcommSocketToServiceRecord() 方法获取 BluetoothSocket 对象,然后使用 connect() 方法连接蓝牙设备。
需要注意的是,连接蓝牙设备需要获得相应的权限。在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
```