Bluetooth PyBlueZ蓝牙连接

Bluetooth PyBlueZ蓝牙连接,bluetooth,serial-port,Bluetooth,Serial Port,我目前正在“玩”蓝牙设备,目标是从Raspberryp2向Android智能手机发送数据(只是一个文本字符串) 让我补充一点,我意识到所谓的“配对”过程和发现的存在。我已经能够成功地将数据从手机发送到我的电脑(windows 10)。 然而,我不能接收或发送数据,并从树莓和手机。 在Windows中:只能从手机接收数据,但不能发送到手机 我使用的代码(在计算机上接收)如下所示: from bluetooth import * server_socket=BluetoothSocket( RFCO

我目前正在“玩”蓝牙设备,目标是从Raspberryp2向Android智能手机发送数据(只是一个文本字符串)

让我补充一点,我意识到所谓的“配对”过程和发现的存在。我已经能够成功地将数据从手机发送到我的电脑(windows 10)。 然而,我不能接收或发送数据,并从树莓和手机。 在Windows中:只能从手机接收数据,但不能发送到手机

我使用的代码(在计算机上接收)如下所示:

from bluetooth import *
server_socket=BluetoothSocket( RFCOMM )
server_socket.bind(("", 3))
server_socket.listen(1)

client_socket, address = server_socket.accept()

data = client_socket.recv(1024)

print("received [%s]" % data)

client_socket.close()
server_socket.close()
在手机上,我使用了一个名为“蓝牙终端”的应用程序

在此应用程序中,我必须首先将手机“连接”到我的计算机。这是我的第二个问题:

“连接”2个蓝牙设备到底意味着什么? ->看起来不像是配对 ->更令人困惑的是,我有时可以“直接”发送到手机,而不必经历这种神秘的“连接”过程


“连接”是什么意思?好的,我想我可以回答我自己的问题:

发件人:https://developer.android.com/guide/topics/connectivity/bluetooth#about-uuid

请注意,配对和连接之间存在差异:

配对意味着两个设备知道彼此的存在,具有可用于认证的共享链路密钥,并且能够彼此建立加密连接

连接意味着设备当前共享一个RFCOMM信道,并且能够相互传输数据。当前的Android Bluetooth API要求在建立RFCOMM连接之前对设备进行配对。当您使用蓝牙API启动加密连接时,会自动执行配对