轻松上手Android蓝牙开发:从基础到实战,一步步教你实现设备连接与数据传输

2026-08-21 0 阅读

在移动设备中,蓝牙技术是一种常见的短距离无线通信方式。它允许设备之间进行数据传输,广泛应用于智能家居、医疗设备、车载系统等领域。Android系统作为全球最受欢迎的移动操作系统之一,自然也提供了丰富的API来支持蓝牙开发。本文将带你从基础到实战,一步步教你实现Android蓝牙设备连接与数据传输。

蓝牙通信基础

蓝牙技术概述

蓝牙(Bluetooth)是一种无线技术标准,允许电子设备之间进行短距离的数据交换。它采用跳频扩频(FHSS)和时分多址(TDMA)技术,有效提高了通信的稳定性和安全性。

蓝牙设备类型

蓝牙设备主要分为以下几类:

  • 主设备(Master):发起连接并控制连接过程的设备。
  • 从设备(Slave):被主设备连接并接收控制的设备。
  • 桥接设备(Bridge):连接多个蓝牙设备,实现多设备之间的通信。

蓝牙通信协议

蓝牙通信协议主要包括以下几层:

  • 物理层:负责无线信号的传输。
  • 链路层:负责数据包的封装、解封装、错误检测和纠正。
  • 逻辑链路控制与自适应协议(L2CAP):提供面向连接和无连接的数据传输服务。
  • 服务发现协议(SDP):用于发现和配置蓝牙服务。
  • 高级配置协议(GAP):定义了蓝牙设备之间的基本交互。

Android蓝牙开发环境搭建

安装Android Studio

首先,你需要安装Android Studio,这是Android开发的主要IDE。在官网下载并安装最新版本的Android Studio,然后创建一个新的项目。

添加蓝牙权限

在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" />

添加依赖库

在build.gradle文件中,添加以下依赖库以支持蓝牙功能:

dependencies {
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1'
    implementation 'androidx.navigation:navigation-ui-ktx:2.3.1'
    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.2.0'
    implementation 'androidx.bluetooth:bluetooth:1.1.0'
}

蓝牙设备扫描与连接

扫描设备

要扫描附近的蓝牙设备,可以使用BluetoothAdapter.getScanResults()方法。以下是一个示例代码:

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> devices = bluetoothAdapter.getScanResults();
for (BluetoothDevice device : devices) {
    Log.d("Bluetooth", "Device: " + device.getName() + ", Address: " + device.getAddress());
}

连接设备

要连接一个设备,可以使用BluetoothDevice.connect()方法。以下是一个示例代码:

BluetoothDevice device = bluetoothAdapter.getRemoteDevice("设备地址");
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID.fromString("服务UUID"));
socket.connect();

蓝牙数据传输

数据发送

要发送数据,可以使用BluetoothSocket.getOutputStream()方法。以下是一个示例代码:

DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
outputStream.writeBytes("发送的数据");
outputStream.flush();

数据接收

要接收数据,可以使用BluetoothSocket.getInputStream()方法。以下是一个示例代码:

DataInputStream inputStream = new DataInputStream(socket.getInputStream());
String receivedData = inputStream.readUTF();
Log.d("Bluetooth", "Received: " + receivedData);

实战案例:蓝牙聊天应用

下面是一个简单的蓝牙聊天应用示例,演示了如何实现设备连接和数据传输。

1. 创建主界面

创建一个主界面,用于显示扫描到的蓝牙设备列表,并允许用户选择连接。

2. 扫描设备

在主界面中,调用BluetoothAdapter.getScanResults()方法扫描附近的蓝牙设备,并将扫描结果显示在列表中。

3. 连接设备

用户选择一个设备后,调用BluetoothDevice.connect()方法连接设备。

4. 发送数据

连接成功后,用户可以在输入框中输入文本,并使用DataOutputStream发送数据。

5. 接收数据

接收到数据后,将其显示在主界面的文本框中。

总结

通过本文的介绍,相信你已经掌握了Android蓝牙开发的基本知识和技能。蓝牙技术在移动设备中的应用越来越广泛,掌握蓝牙开发将为你的职业生涯增添更多可能性。希望本文能帮助你轻松上手Android蓝牙开发,实现设备连接与数据传输。

分享到: