2012-02-06 55 views
3

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

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

任何想法将非常感激。

最良好的祝愿,

凯文

回答

5

你提到有这个问题是非常有用的,因为它提供了一个情况,以.createRfcommSocketToServiceRecord()通常调用失败上班一种解决方法。我已经亲自在我正在执行的一个项目中使用该解决方案解决方案。我所做的是我首先尝试拨打.createRfcommSocketToServiceRecord(),如果失败,我的代码将尝试连接.getClass().getMethod("createRfcommSocket", new Class[]{int.class});解决方法。在尝试使用多种蓝牙到串行PCB之后,其中一些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地址中进行硬编码。

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

相关问题