首页  /  预约专享  /  手把手教你实现安卓蓝牙文件传输(含Android 14权限适配与踩坑实录)

手把手教你实现安卓蓝牙文件传输(含Android 14权限适配与踩坑实录)

预约专享 4866

前言

最近在学习《移动软件开发》课程时,我接到了一个任务:开发一个安卓App,实现两台手机通过蓝牙互传图片。听起来很简单?我一开始也这么认为。然而,随着安卓系统的飞速迭代,曾经简单的几行代码,如今需要面对权限申请、后台限制、分区存储、版本适配等一系列“现代化”的挑战。

这篇博客,既是我的学习成果总结,也是一份详尽的“踩坑避坑”指南。希望能帮助正在或将要探索安卓蓝牙开发的你,少走一些弯路。

一、 最终成果展示

发送方:选择图片后,连接设备,显示发送成功。接收方:接收成功后,提示文件保存路径,并在系统相册中可见。

二、 核心原理与项目搭建

1. 蓝牙通信原理

安卓蓝牙通信是典型的 客户端-服务器 (C/S) 模型:

服务端(Server): 创建一个 BluetoothServerSocket,在一个唯一的 UUID 上进行监听 (listen),然后调用 accept() 进入阻塞状态,等待客户端连接。客户端(Client): 通过服务端的MAC地址和同一个 UUID 创建 BluetoothSocket,然后调用 connect() 发起连接。数据交换: 连接成功后,双方通过 InputStream 和 OutputStream 进行数据的读写,完成文件传输。

2. 项目基础搭建

UI布局 (activity_main.xml): 界面很简单,包含几个核心功能的按钮和一个用于显示状态的 TextView。