为什么蓝牙代理在授权时卡住了?

为什么蓝牙代理在授权时卡住了?

我正在尝试在笔记本电脑和手机之间手动连接。我已经安装了bluez-utils版本4.98-2ubuntu7。当我在终端上运行代理时,我得到:

asheesh@U32U:~$ sudo bluetooth-agent 4835
Pincode request for device /org/bluez/980/hci0/dev<id>
Authorizing request for /org/bluez/980/hci0/dev<id>

当我尝试通过手机配对时,会打印 pincode 请求行。当我根据提示输入密码后,设备将获得授权。我现在可以从手机将文件发送到笔记本电脑。但是,应用程序在授权请求后会卡住,并且控制权不会传回终端。

为什么会发生这种情况?我如何重新获得控制权?

这似乎与我在互联网上看到的示例相反,在互联网上,终端在授权运行进一步命令后才可用。

我意识到在后台运行它是一个可能的解决方案,但由于配对完成后我需要运行某些其他任务,所以我更愿意让它在前台运行。

我尝试使用这个:

bluetooth-agent "$PIN" 1> ./bluelog #Background run tested also

但是,该进程在完成(或被终止)之前不会将其输出写入文件,因此我无法测试bluelog.有没有办法强制进程在完成之前写入输出?

答案1

这只是解决该问题的方法。bluetooth-agent欢迎就如何解决实际的停顿问题提出任何建议。


我曾经在后台运行时stdbuf禁用行缓冲。这会实时更新日志文件,从而让我检查并触发需要完成的其余活动。STDOUTbluetooth-agent

stdbuf -o 0 bluetooth-agent "$PIN" 1> ./bluelog &

相关内容