简单的蓝牙数据接收器Android

Posted

技术标签:

【中文标题】简单的蓝牙数据接收器Android【英文标题】:Simple Bluetooth data receiver Android 【发布时间】:2012-02-28 03:58:32 【问题描述】:

作为 android 编程的初学者,我有一个问题: 我想从连接到微处理器的蓝牙/串行模块接收数据(两个字节)。此数据应打印到屏幕上并更新,例如每秒一次。我已经找到了:How to prevent Android bluetooth RFCOMM connection from dying immediately after .connect()? 这应该是一个工作代码,但什么都没有发生。 我把mac地址改成00:11:12:05:03:67,应该和我的蓝牙模块对应。

我是否完全走错了方向?我想我想要的是非常基本的:只是通过蓝牙进行简单的单向数据传输。

任何想法将不胜感激。

祝你好运,

凯文

【问题讨论】:

【参考方案1】:

您提到的问题非常有用,因为它为通常调用.createRfcommSocketToServiceRecord() 失败的情况提供了一种解决方法。我个人在我现在正在做的一个项目中使用了这个解决方案。我要做的是首先尝试.createRfcommSocketToServiceRecord() 调用,如果失败,我的代码将尝试连接.getClass().getMethod("createRfcommSocket", new Class[]int.class); 解决方法。在尝试了许多蓝牙到串行 PCB 之后,其中一些往往有点“尴尬”,而后一种反射方法在.createRfcommSocketToServiceRecord() 不起作用时起作用。

然而...尽管您引用的那个问题确实提供了一段非常有用的紧凑代码,但我认为这不是您开始的最佳起点。你应该开始的地方是Android's Bluetooth documentation,它很好地解释了整个过程,包括如何使用单独的Threads来处理发现、连接等。实际上使用Bluetooth Chat source code很容易上手。使用它,您可以快速启动并运行并连接到蓝牙串行模块。您只需确保将 UUID 更改为串行端口配置文件 (SPP) 所需的值:

private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

希望这足以让一个简单的应用程序与您的蓝牙串行模块通信。蓝牙聊天示例应用程序还为您提供了处理设备发现、配对和所有好东西的对话框,因此您不必像以前那样在设备的 MAC 地址中进行硬编码。

如果您在连接时遇到问题,那么您需要具体说明实际发生的情况;即,你得到了什么异常,等等。

【讨论】:

以上是关于简单的蓝牙数据接收器Android的主要内容,如果未能解决你的问题,请参考以下文章

如何让手机APP接收蓝牙模块发送的数据并显示出来

安卓开发蓝牙接收数据,返回数据如何处理

怎么读取Android的蓝牙接收到的数据

ESP32 BLE蓝牙 微信小程序通信发送大于20字符数据

实战BLE蓝牙之数据收发

如何使用android蓝牙接收串行数据