我想知道如何构建处理从 Raspberry pi 发送的数据的 Android 应用程序。
我在 Raspberry Pi 上安装了 pybluez 模块并使用以下 python 脚本发送数据。
import bluetooth
port = 1
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((targetBluetoothMacAddress, port))
#targetBluetoothMacAddress is my phone MacAddress
sock.send("hello!!")
sock.close()
在我的手机上,我确实看到两台设备成功配对。但是找不到从树莓派获取数据的方法。有没有办法构建一个应用程序来处理来自 sock.send() 的数据?
您需要查阅 Android 蓝牙 API,但是您可以非常轻松地构建应用程序。首先,您要做的是获得对代表您要连接的 Raspberry Pi的BluetoothDevice的引用。您可以通过调用做到这一点BluetoothAdapter.startDiscovery()或通过调用直接询问与树莓派的MAC地址的设备框架BluetoothAdapter.getRemoteDevice(...) 。
获得设备后,您将希望使用该设备打开BluetoothSocket。为此,请调用createRfcommSocketToServiceRecord(UUID)。如果您使用 SPP 连接到 Raspberry Pi,则 UUID 参数更可能感谢“0001101-0000-1000-8000-00805F9B34FB”。create 方法将返回一个 BluetoothSocket,您需要在其上调用connect()。请注意,connect 是一个阻塞调用,您需要在工作线程中执行所有这些工作以防止锁定您的 UI。如果连接成功返回,则您已成功连接到设备。为了实现与设备的来回通信,您需要掌握它的输入和输出通过在BluetoothSocket上调用以下两个方法getInputStream()和getOutputStream()来流式传输。
一旦你有了这两个流,你就可以在两个设备之间来回发送字节数据。请注意,从流中读取和写入是阻塞操作,因此我建议创建两个单独的线程来读取和写入数据,将流和处理程序传递到线程构造函数中,以便您可以将数据发送回 UI 线程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句