从零开始,轻松掌握Android蓝牙开发全攻略

2026-07-18 0 阅读

了解蓝牙技术

在开始Android蓝牙开发之前,我们需要先了解一下蓝牙技术的基本概念。蓝牙(Bluetooth)是一种短距离无线通信技术,它允许电子设备之间进行数据交换。蓝牙技术由蓝牙特别兴趣小组(Bluetooth Special Interest Group,简称SIG)定义,目前最新版本为5.3。

蓝牙协议栈

蓝牙协议栈由以下几层组成:

  1. 物理层:负责无线电信号的传输。
  2. 链路层:负责数据的封装、解封装和错误检测。
  3. 链路管理协议:负责设备间的连接和断开。
  4. 逻辑链路控制与适配协议:负责数据传输的封装和解封装。
  5. 传输控制协议/互联网协议:负责数据传输的流量控制和错误恢复。
  6. 服务发现协议:负责设备间的服务发现。
  7. 高级配置协议:负责设备间的配置信息交换。

Android蓝牙开发环境搭建

安装Android Studio

首先,我们需要安装Android Studio,这是Android开发的主要IDE。从官方网站下载并安装最新版本的Android Studio。

创建Android项目

打开Android Studio,创建一个新的Android项目。在创建项目时,选择“Empty Activity”模板。

添加蓝牙权限

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

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-feature android:name="android.hardware.bluetooth" android:required="true" />

添加蓝牙库

在项目的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.3.1'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1'
    implementation 'androidx.navigation:navigation-ui-ktx:2.3.1'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.31'
    implementation 'androidx.bluetooth:bluetooth:1.2.0'
}

蓝牙设备扫描与连接

扫描设备

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

val bluetoothManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
val bluetoothAdapter = bluetoothManager.adapter
bluetoothAdapter?.startDiscovery()

连接设备

扫描到设备后,使用以下代码连接到设备:

val bondState = bluetoothDevice.bondState
if (bondState == BluetoothDevice.BOND_BONDED) {
    // 已连接设备
    bluetoothSocket.connect()
} else {
    // 尝试配对设备
    bluetoothDevice.createBond()
}

蓝牙数据传输

发送数据

使用以下代码发送数据:

val outputStream = bluetoothSocket.outputStream
outputStream.write(data.toByteArray())

接收数据

使用以下代码接收数据:

val inputStream = bluetoothSocket.inputStream
val buffer = ByteArray(1024)
val bytesRead = inputStream.read(buffer)
val receivedData = String(buffer, 0, bytesRead)

总结

通过以上步骤,您已经可以轻松掌握Android蓝牙开发了。当然,这只是蓝牙开发的基础,实际开发过程中还有很多细节需要您去学习和掌握。希望这篇文章能对您有所帮助。

分享到: