ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

10 分钟跑通蓝牙 SPP 通信:新手完整指南

10 分钟跑通蓝牙 SPP 通信:新手完整指南 10 分钟跑通蓝牙 SPP 通信新手完整指南【免费下载链接】BluetoothSPPLibrary[UNMAINTAINED][Android] Bluetooth Serial Port Profile which comfortable to developer application to communication with microcontroller via bluetooth项目地址: https://gitcode.com/gh_mirrors/bl/BluetoothSPPLibraryBluetoothSPPLibrary 是一个 Android 蓝牙串口通信SPP库封装了连接、收发数据的全部流程自带设备选择页面适合在手机上快速与微控制器建立数据链路。没接触过蓝牙协议的新手按下面步骤约 10 分钟能跑通第一次连接。开始前的环境准备一台带蓝牙的真机模拟器没有蓝牙跑不了示例Android Studio项目出自 2015 年且已停止维护示例工程用的是较老的 Gradle/AGP 版本直接运行示例需搭配对应旧版 AS自己的新项目则用新版 AS 加 Gradle 依赖即可网络可访问用于下载依赖五步跑通蓝牙串口通信第 1 步拿到代码。二选一跑示例git clone https://gitcode.com/gh_mirrors/bl/BluetoothSPPLibrary用 Android Studio 打开并运行 app 模块。启动后主界面出现 Simple、Listener、AutoConnect、DeviceList、Terminal 五个按钮即为成功。用库在自己项目的依赖里加一行implementation com.akexorcist:bluetoothspp:1.0.0第 2 步加蓝牙权限。在应用的 AndroidManifest.xml 中声明下面两个权限uses-permission android:nameandroid.permission.BLUETOOTH / uses-permission android:nameandroid.permission.BLUETOOTH_ADMIN /验收信号工程同步、构建成功。用 Gradle 依赖时库的 manifest 已带这两个权限自动合并效果相同。第 3 步创建对象并启动服务。在 onCreate 中创建 BluetoothSPP传入当前上下文注册两个回调一个负责接收数据一个负责通知连接成功或失败。接着 setupService() 创建通信服务startService() 启动它参数决定对象连另一台 Android 手机传 BluetoothState.DEVICE_ANDROID连微控制器传 DEVICE_OTHERbt new BluetoothSPP(this); bt.setOnDataReceivedListener(new OnDataReceivedListener() { public void onDataReceived(byte[] data, String message) { // 处理收到的字符串 } }); bt.setupService(); bt.startService(BluetoothState.DEVICE_OTHER);验收信号启动不闪退logcat 无 BluetoothSPP 相关报错。第 4 步选设备并连接。不用自己写选择页面启动库内置的 DeviceList 页面用户选中设备返回后在 onActivityResult 里调用 bt.connect(intent) 发起连接。验收信号连接回调的 onDeviceConnected 被触发拿到对方设备名和 MAC 地址。第 5 步收发数据。bt.send(Hello, true) 发送字符串第二个参数 true 表示自动追加 CR LF 行尾也支持发原始字节数组。对方回复时第 3 步注册的数据回调触发。验收信号对端收到带行尾的完整字符串应用侧收到内容。两个实战场景微控制器串口调试最常见。Arduino 加一个蓝牙串口模块手机发指令、单片机回传传感器读数用上面的 DEVICE_OTHER 模式即可仓库里的 TerminalActivity 就是一个串口终端演示。若设备已配对每次启动只需一行 bt.autoConnect(设备名关键词) 自动连上。两台 Android 手机互通。startService 传 DEVICE_ANDROID用内置设备列表页找到另一台手机连上后收发数据即可。避坑指南弹出Bluetooth is not available提示→ 设备没有蓝牙适配器BluetoothAdapter 为 null → 先用 isBluetoothAvailable() 判断再执行后续操作换带蓝牙的设备示例工程就是这么做的。连接后回调一直没触发→ 漏了 setupService()或两次调用的顺序颠倒 → 严格按先 setupService() 再 startService() 的顺序并在 onDestroy 中调用 stopService() 释放与示例一致。单片机端收到的数据断行、缺行尾→ 蓝牙串口数据可能被拆成多段而单片机常以 CR LF 作行分隔 → bt.send() 第二个参数传 true让库自动补行尾接收端库已把分段数据拼接回调里直接拿到完整字符串。示例工程同步或构建失败→ 项目年代较老Gradle/AGP 版本旧且依赖已停用的旧仓库 → 不要用最新版 Android Studio 强跑示例改用匹配的旧版本或在自己的工程里直接引用仓库 library 模块的四个 Java 源文件。下一步去哪完整 API 说明自定义设备列表页面、自动连接回调、用 bundle 改页面文字见仓库 README.md更完整的示例代码在 app 模块的五个 Activity 里重点看 ListenerActivity 和 AutoConnectActivityREADME 的 Whats next 一节列出了已知问题和计划功能遇到问题先翻这里【免费下载链接】BluetoothSPPLibrary[UNMAINTAINED][Android] Bluetooth Serial Port Profile which comfortable to developer application to communication with microcontroller via bluetooth项目地址: https://gitcode.com/gh_mirrors/bl/BluetoothSPPLibrary创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表