我正在开发一个项目,我需要通过蓝牙在android和raspberry pi之间传输数据。但是,我是新手,我对两个设备配对时会发生什么情况并不了解。基于两个感兴趣的设备已经配对的假设,起点在哪里为这样的任务编程?我一直在阅读BluetoothSocket,但我仍然不确定从哪里开始。有人可以帮帮我吗?
提前非常感谢你!
答案 0 :(得分:1)
我一直在研究这个问题,这是我在最后发现的阅读。我期待在python中专门编写代码,这是第一个的角度,第二个是C ++,但有一个非常详尽的介绍。
https://people.csail.mit.edu/albert/bluez-intro/index.html
这个也非常好,介绍太密集了:
http://beej.us/guide/bgnet/output/html/multipage/index.html
要查看的具体部分涉及规划方面。 beej编程指南的介绍具体说明了套接字是什么以及它们如何适合网络意义。这意味着流套接字和数据报套接字。它还显示了使用哪个插座以及哪些插座可用。第1章到第3章为我提供了足够坚实的阅读基础,可以使用第二个文件来确定一些事项。
麻省理工学院文档的第2章详细介绍了结构层面必须采取的每个步骤,包括L2CAP + UDT,RCOMM以及其中的流。通过阅读这些,我能够确定我想要使用的网络是L2CAP。我希望这些帮助可以指出您正确的方向,尽管您想要设置的网络以及您想要编程的语言。
答案 1 :(得分:0)
前一段时间我一直在做同样的工作。关键是,为了开始发送和接收数据,您必须首先建立连接。有两个连接(创建插座)和另一个接收连接(蓝牙服务器插座)的侧设备,一旦连接完成就给出连接。建立连接后,您应该停止接收传入连接或尝试建立任何连接。 从实现的角度来看,您应该实现几个线程来管理所有这些阶段 - 连接线程,接受线程,通信线程。谷歌有一个很好的例子:https://github.com/googlesamples/android-BluetoothChat。它使用了这种技术。唯一的缺点是它使用Handler(Android功能,允许其进行通信)来通知用户有关蓝牙事件的信息。我通过引入另一个线程,接收状态更新和从回调接口调用方法来修改它,随意使用项目中的代码:https://github.com/AlexShutov/LEDLights。