android 蓝牙发送接收数据
时间: 2024-06-20 13:02:32 浏览: 291
Android蓝牙功能允许应用之间通过蓝牙进行数据传输。以下是蓝牙在Android中发送和接收数据的基本步骤:
1. **设置蓝牙**: 首先,你需要在AndroidManifest.xml中添加蓝牙权限,并确保设备已开启蓝牙。在Activity或Service中,初始化蓝牙管理器(BluetoothAdapter)。
```java
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter != null && !bluetoothAdapter.isEnabled()) {
// 请求用户开启蓝牙
}
```
2. **搜索蓝牙设备**: 使用`bluetoothAdapter.startDiscovery()`开始搜索附近的蓝牙设备。
3. **设备配对**: 找到目标设备后,可以通过其地址(BluetoothDevice)建立连接。如果设备未配对,可能需要请求配对。
4. **创建Socket/Service**: 创建一个`BluetoothSocket`用于实际的数据传输。对于Android 6.0及以上版本,推荐使用`BluetoothLeServer`(低功耗蓝牙服务)或`BluetoothGattServer`进行数据交换。
5. **数据发送**: 使用`OutputStream`从`BluetoothSocket`发送数据。如果是`BluetoothLeServer`,则通过`write()`方法写入数据包。
```java
byte[] data = ...; // 数据字节数组
out.write(data);
```
6. **数据接收**: 对于客户端,从`InputStream`读取数据。如果是`BluetoothGattClient`,可以监听`Characteristic`值的变化。
```java
byte[] buffer = new byte[1024];
in.read(buffer);
String receivedData = new String(buffer, "UTF-8");
```
7. **关闭连接**: 当数据传输完成后,记得关闭连接:
```java
bluetoothSocket.close();
```
阅读全文