如何使用 cli 在 Fedora 24 上通过蓝牙接收文件?

如何使用 cli 在 Fedora 24 上通过蓝牙接收文件?

这个问题可能已经被问过,但我只是找不到如何让它发挥作用。

到目前为止,这是我发现的(并且失败了):

  • 使用 obexush(该命令甚至不存在,最接近的匹配是 obex_push)
  • 使用 obexftpd 失败并显示“注册到 SDP 服务器失败”。等待连接。没有其他反应,我无法接收文件。
  • obex_push 也因 sdptool add --channel=12 OPUSH 失败(12 是我手机上的 OPUSH 通道,使用 hcitool 浏览找到)。

到目前为止,我可以使用 bluetoothctl 配对、连接和“信任”我的设备,并将音频和互联网连接流式传输到我的电脑,仅此而已。我似乎找不到将文件从手机发送到电脑的方法。有什么方法可以做到这一点,或者至少有一个关于所有这些如何工作的参考?

答案1

好的,所以我已经设法让它工作了,这只是 bluez 5 的问题以及它与 bluez 4 缺乏向后兼容性。据我所知,您首先必须添加 sdp 侦听器、服务或其他内容,使用:sdptool add OPUSH为了让PC监听来电奥克斯推messages、bus 由于 sdptool 需要 bluez 4 api,因此无法创建服务。我注意到这一点是因为sdptool browse local也失败了,并且做了一些研究我了解到了 bluez 4/5 的事情。这obex_push也是失败的原因obexftp。最后,解决方案是通过将参数添加--compat到可执行文件中,或者更确切地说,添加到 systemd 文件中(在我的例子中),以兼容模式启动守护进程:

vi /usr/lib/systemd/system/bluetooth.service

在[服务]下:

ExecStart=/usr/libexec/bluetooth/bluetoothd->ExecStart=/usr/libexec/bluetooth/bluetoothd --compat

我实际上创建了两个单独的服务文件,具有默认配置的 bluetooth.service 和具有 compat 标志的 bluetooth-compat.service 并将其设为默认值:

]# systemctl disable bluetooth.service
]# systemctl enable bluetooth-compat.service

我再次启动了守护进程,现在 sdptool 工作正常,并且我刚刚传输了几个中等大小的文件 (5 MB)。伟大的。

相关内容