简单的蓝牙数据接收器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的主要内容,如果未能解决你的问题,请参考以下文章