Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何建立蓝牙HFP服务级别连接_Python_Bluetooth_Bluez_Pybluez_Hfp - Fatal编程技术网

Python 如何建立蓝牙HFP服务级别连接

Python 如何建立蓝牙HFP服务级别连接,python,bluetooth,bluez,pybluez,hfp,Python,Bluetooth,Bluez,Pybluez,Hfp,我正在尝试使用中提供的python测试代码建立HFP(免提配置文件)服务级别连接 为了运行,该示例需要进行一些修改: 修复不推荐使用的导入语句: => 更改mainloop对象: => 禁用音频,因为它与此测试无关: 对发送到字节的命令进行编码: => 解码从缓冲区接收的字节: => 将BDADDR_ANY更改为手机地址: 此时,示例将运行,为了实际尝试连接,我添加了以下代码: fd = os.open("test.log", os.O_RDWR) p

我正在尝试使用中提供的python测试代码建立HFP(免提配置文件)服务级别连接

为了运行,该示例需要进行一些修改:

  • 修复不推荐使用的导入语句:
=>

  • 更改mainloop对象:
=>

  • 禁用音频,因为它与此测试无关:
  • 对发送到字节的命令进行编码:
=>

  • 解码从缓冲区接收的字节:
=>

  • 将BDADDR_ANY更改为手机地址:
此时,示例将运行,为了实际尝试连接,我添加了以下代码:

fd = os.open("test.log", os.O_RDWR)
profile.NewConnection(options.path, fd, opts)
此时,我从以下行的NewConnection()中得到一个错误:
fd=fd.take()
看看代码,fd似乎是一个简单的文件描述符,所以注释掉这一行可以帮助我继续前进。 我现在面临的实际问题是,在发送初始AT命令(上面链接的第78行)后,我没有收到设备的回复。根据蓝牙HFP 1.8规范,这应该会启动。我甚至不确定我的命令是否正在发送到设备


我也试过了,更新一点。这一个可以通过套接字(BluetoothSocket)打开RFCOMM连接,但连接会不断重置。这是因为_read_at()函数(第181行)没有从设备接收任何信息,并且超时。

BlueZ示例等待Bluetooth调用
NewConnection
方法的连接。你在用什么硬件?如果您键入
bluetoothctl show
,是否已经有一个免提音频网关插件处于活动状态?我正在使用一个信任蓝牙狗()<代码>蓝牙CTL show确实显示了“耳机AG”UUID。默认情况下,只需连接电脑,我就可以将电脑用作耳机。可能是我需要先禁用那个连接吗?我还应该提到,我正在运行Manjaro KDE作为我的操作系统。
from gi.repository import GLib as glib
mainloop = GObject.MainLoop()
mainloop = glib.MainLoop()
audio_supported = False
os.write(self.fd, cmd + "\r\n")
os.write(self.fd, f"{cmd}\r\n".encode())
buf = buf.strip()
buf = buf.decode('utf8').strip()
fd = os.open("test.log", os.O_RDWR)
profile.NewConnection(options.path, fd, opts)