你提到有这个问题是非常有用的,因为它提供了一个情况,以.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地址中进行硬编码。
如果您在连接时遇到问题,那么您需要具体了解实际发生的情况;即您遇到了什么异常,等等。