作为Android编程的初学者,我有一个问题:我想从连接到微处理器的蓝牙/串行模块接收数据(两个字节).这些数据应该打印到屏幕上,并且每秒更新一次.我已经发现了这个:如何防止Android蓝牙RFCOMM连接在.connect()之后立即死亡? 哪个应该是工作代码,但什么也没发生.我将mac地址更改为00:11:12:05:03:67,这应该与我的蓝牙模块相对应.
我是否完全朝着错误的方向前进?我想我想要的是非常基本的:只需通过蓝牙进行简单的单向数据传输.
任何想法都将非常感激.
最好的祝愿,
凯文
你在那里提到的问题非常有用,因为它为通常的调用.createRfcommSocketToServiceRecord()无法工作的情况提供了一种解决方法.我个人在我正在做的项目中使用了该解决方案.我的工作是.createRfcommSocketToServiceRecord()先尝试呼叫,如果失败,我的代码会尝试连接.getClass().getMethod("createRfcommSocket", new Class[]{int.class});变通方法.在尝试了许多蓝牙到串行PCB之后,其中一些往往有点"尴尬",而后一种反射方法在.createRfcommSocketToServiceRecord()没有.
但是 ......虽然你引用的那个问题确实提供了一个非常有用的紧凑代码,但我认为它不是你开始的最佳位置.你应该开始的地方是Android的蓝牙文档,它非常好地解释了整个过程,包括如何使用单独Threads来处理发现,连接等.事实上,开始使用蓝牙聊天源代码非常容易.使用它,您可以非常快速地启动并运行并连接到蓝牙串行模块.您只需确保将UUID更改为串行端口配置文件(SPP)所需的UUID:
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
Run Code Online (Sandbox Code Playgroud)
希望这足以让一个简单的应用程序与您的蓝牙串行模块通信.蓝牙聊天示例应用程序还为您提供了处理设备发现,配对和所有好东西的对话框,因此您不必像以前那样在设备的MAC地址中乱码.
如果您在连接时遇到问题,那么您需要具体了解实际发生的情况; 即,你得到了什么例外,等等.
| 归档时间: |
|
| 查看次数: |
10158 次 |
| 最近记录: |