从零开始学Android蓝牙开发:实用教程,轻松实现设备连接与数据传输

2026-07-28 0 阅读

引言

在移动设备中,蓝牙技术是一种广泛使用的短距离无线通信技术。它允许设备之间进行数据交换,如文件传输、音频播放等。Android操作系统内置了蓝牙功能,使得开发者可以轻松地为其应用程序添加蓝牙通信功能。本文将为您提供一份实用的Android蓝牙开发教程,帮助您从零开始,轻松实现设备连接与数据传输。

蓝牙基础知识

1. 蓝牙技术简介

蓝牙(Bluetooth)是一种无线技术标准,由蓝牙特别兴趣小组(Bluetooth Special Interest Group,简称SIG)制定。它允许设备在短距离内(通常为10米以内)进行通信。

2. 蓝牙设备分类

蓝牙设备主要分为三类:

  • 主设备(Master):负责发起连接和传输数据。
  • 从设备(Slave):被主设备连接并接收数据。
  • 对等设备(Peer):既可以作为主设备,也可以作为从设备。

3. 蓝牙通信协议

蓝牙通信协议包括以下几个层次:

  • 物理层:定义了蓝牙设备的无线通信标准。
  • 链路层:负责建立、维护和终止蓝牙连接。
  • 网络层:负责数据的封装和传输。
  • 传输层:负责数据的可靠传输。
  • 应用层:定义了蓝牙应用的开发接口。

Android蓝牙开发环境搭建

1. 安装Android Studio

首先,您需要在您的计算机上安装Android Studio。Android Studio是Android开发的官方集成开发环境(IDE),提供了丰富的工具和库,方便开发者进行蓝牙开发。

2. 创建新项目

在Android Studio中,创建一个新项目,选择“Empty Activity”作为项目模板。

3. 添加蓝牙权限

在项目的AndroidManifest.xml文件中,添加以下权限:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

蓝牙设备扫描与连接

1. 扫描设备

在您的Activity中,使用以下代码扫描附近的蓝牙设备:

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
List<BluetoothDevice> scanResults = new ArrayList<>();

if (bluetoothAdapter != null) {
    bluetoothAdapter.startDiscovery();
    bluetoothAdapter.getScanResults().forEach(scanResult -> {
        BluetoothDevice device = scanResult.getDevice();
        if (!pairedDevices.contains(device)) {
            scanResults.add(device);
        }
    });
}

2. 连接设备

找到您想要连接的设备后,使用以下代码连接它:

BluetoothDevice device = ...; // 扫描到的设备
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
socket.connect();

蓝牙数据传输

1. 发送数据

连接到设备后,使用以下代码发送数据:

OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, Bluetooth!".getBytes());
outputStream.flush();

2. 接收数据

在设备端,使用以下代码接收数据:

InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String receivedData = new String(buffer, 0, bytesRead);

总结

通过本文的教程,您已经掌握了从零开始进行Android蓝牙开发的基本技能。在实际开发过程中,您可能需要根据具体需求调整代码,并处理各种异常情况。希望本文能帮助您在蓝牙开发的道路上越走越远。

分享到: